0

ローカルの IIS7 サーバーで正常に動作するアプリケーションを開発しました。ローカル ネットワーク上の別のマシンを使用してログインし、すべてのエリアにアクセスできます。

IIS6.0 と SQL Server 2005 を使用する SBS2003 サーバーに展開した後、アクセスの問題が発生しました。これをソートして、Web アプリをロードしてログインできるようにしました。認証が必要なページにアクセスしたいときに問題が始まります。ログインしてもページを読み込めません。言うまでもなく、これは RBA を必要とするページにも当てはまります。

私が得る現在のエラーメッセージは次のとおりです。

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

問題の答えがエラー メッセージにあると言ってこの質問に答える場合は、まず、アプリケーションにログインできることを覚えておいてください。私は明らかにDBに接続しています。その後、答えがまだ簡単な場合は、お気軽に私をからかってください。

これが私のweb.configです:

<?xml version="1.0"?>

<configuration>
  <connectionStrings>
    <add name="ZenIntranetConnectionString" connectionString="Data Source=127.0.0.1;Database=ZenIntranet;Integrated Security=True;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime maxRequestLength="8192" executionTimeout="360"/>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ZenIntranetConnectionString"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ZenIntranetConnectionString" applicationName="/"/>
      </providers>
    </profile>

    <roleManager enabled="true" defaultProvider="ZenRoleProvider">
      <providers>
        <clear/>
        <add name="ZenRoleProvider" type="BusinessClasses.ZenRoleProvider, BusinessClasses" 
        connectionStringName="ZenIntranetConnectionString"
            applicationName="/" />
      </providers>
    </roleManager>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

ご協力いただきありがとうございます。私は本当にそれが必要です。

<roleManager>PSタグに接続文字列名を追加しただけです。以前は必要なかったのですが、ローカルの web.config では必要ないようです。他の人がそれが必要だと言ったのを見たので、私は今のところそれを残しました. とにかく、それはうまくいきません。

4

1 に答える 1

0

問題は、データクラス レイヤーのデータセット デザイナーに使用される (VS によって生成された) ハード コーディングされた接続文字列でした。

ホームページがデータ オブジェクトをロードしなかったため、正常にログインできましたが、dataset.xsd ファイルから何かが必要になるとすぐに、アプリケーションは DAL からハードコードされた接続文字列を使用していました (開発サーバーの接続文字列がまだ残っていました)。のソリューション全体の検索を行った後、文字列を見つけましたconnectionString

余談ですが、web.config はこれをオーバーライドする必要があると思いましたが、そうではありません。

于 2013-11-08T00:45:45.667 に答える