3

誰でもこれで私を助けることができますか? Visual Studio ではすべて正常に動作しますが、リモート サーバーでは動作しません。ログインした状態とログアウトした状態でページにアクセスしようとしましたが、同じエラーが発生しました。エラー:「System.Data.SqlClient.SqlException: ユーザー 'ASPHOST166\IWAM_plesk(default)' のログインに失敗しました。」

Web.confing:

 <?xml version="1.0" encoding="utf-8"?>
 <!--
    For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
 -->
 <configuration>
 <connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=ASPHOST166\SQL2008R2,778; Initial Catalog=Rennoz_DATABASEMDF; User ID=Rennoz_Admin; Password=*****" providerName="System.Data.SqlClient"/> 
    <add name="ApplicationServices" connectionString="Data Source=ASPHOST166\SQL2008R2,778; Initial Catalog=Rennoz_DATABASEMDF; User ID=Rennoz_Admin; Password=*****" providerName="System.Data.SqlClient" />
    <add name="DatabaseEntities" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=ASPHOST166\SQL2008R2,778; Initial Catalog=Rennoz_DATABASEMDF; User ID=Rennoz_Admin; Password=*****;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
<system.web>
 <compilation debug="false" targetFramework="4.0">
   <assemblies>
     <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
     <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    </assemblies>

  <buildProviders>
    <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" />
  </buildProviders>
</compilation>
  <customErrors mode="Off"></customErrors>
  <trace mostRecent="true" enabled="true" requestLimit="1000" pageOutput="false" localOnly="true"/>
 <authentication mode="Forms" />
 <membership>
   <providers>
     <clear />
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 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="ApplicationServices" applicationName="/" />
   </providers>
 </profile>
 <roleManager enabled="true">
   <providers>
     <clear />
     <add connectionStringName="ApplicationServices" applicationName="/"
      name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
    <add applicationName="/" name="AspNetWindowsTokenRoleProvider"
      type="System.Web.Security.WindowsTokenRoleProvider" />
   </providers>
 </roleManager>
</system.web>
<system.webServer>
 <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
 <location path="Moderation">
     <system.web>
        <authorization>
            <allow roles="Admin" />
                <deny users="*" />
            </authorization>

        </system.web>

    </location>
 </configuration>

ページの背後にあるコード (挿入) :

 protected void EntityDataSource1_Inserting1(object sender, EntityDataSourceChangingEventArgs e)
 {
     Good pic = (Good)e.Entity;
     //pic.PhotoAlbumId = photoalbumid;
     FileUpload fileupload1 = (FileUpload)ListView1.InsertItem.FindControl("FileUpload1");
     string virtualFolder = "~/pics/";
     string fizfolder = Server.MapPath(virtualFolder);
     string filename = Guid.NewGuid().ToString();
     string extension = System.IO.Path.GetExtension(fileupload1.FileName);

     fileupload1.SaveAs(System.IO.Path.Combine(fizfolder, filename + extension));
     pic.ImageURL = virtualFolder + filename + extension;
     pic.Date = System.DateTime.Today;

 }
4

4 に答える 4

6

アプリケーションが SQL サーバーに存在しないアカウントで実行されているようです。Integrated Security=True;したがって、Entity Framework の接続文字列にログインとパスワードが指定されているため、この Entity Framework 接続文字列から削除する必要があると思います。

<add name="DatabaseEntities" 
     connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=ASPHOST166\SQL2008R2,778; Initial Catalog=Rennoz_DATABASEMDF; User ID=Rennoz_Admin; Password=*****;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" 
     providerName="System.Data.EntityClient" />

更新: エラー メッセージによると、ユーザー インスタンスのログイン フラグは、お使いのバージョンの SQL サーバーではサポートされていません。したがって、User Instance=True;パラメーターも削除します。

于 2013-04-19T11:30:14.240 に答える
3

接続文字列はandだけでなく(どちらが優先されます)もDatabaseEntities指定します。後者を削除して、指定された SQL アカウントを使用します。User IDPasswordIntegrated Security=true

また削除User Instance=true- MDF ファイルを動的に添付する場合にのみ使用されます。

于 2013-04-19T11:28:02.203 に答える
0

SQL サーバーが別のマシンにある場合に IntegratedSecurity を使用する必要がある場合は、SQL サーバーで許可されているのと同じ資格情報でサイトを実行する必要があります。

  1. Web マシンがドメインにない場合は、両方のマシン (Web と SQL) で同じ資格情報を持つ同じユーザーを作成する必要があります。「SQL Server Management Studio」で、このユーザーを追加し、必要な権限を設定します。
  2. IIS でアプリケーション プールに移動し、[詳細設定] をクリックして、[ID] プロパティで (作成したユーザーまたはドメイン ユーザーの) 資格情報を設定します。
  3. IIS のサイトで [詳細設定] に移動し、プロパティ [物理パス資格情報] で資格情報 (作成したユーザーまたはドメイン ユーザー) を設定します。
  4. 「ConnectionString」で、プロパティ「source」で「localhost」を使用している場合は、SQL サーバーが配置されている UNC アドレスに変更します。
  5. 接続を確立できない場合は、使用する SQL インスタンスの「SQL Server 構成マネージャー」で TCP/IP プロトコルが有効になっていることを確認してください (変更後、インスタンスを再起動する必要があります)。また、ファイアウォールで TCP ポート 1443 が許可されていることを確認してください。SQL マシンで。" Paping " utility - "paping YourSqlMachine -p 1433 -c 4"を使用して、Web マシンからこのポートに ping を実行できます。
于 2016-06-03T08:49:22.437 に答える