簡體   English   中英

無法連接到ASP.NET Web管理工具中的SQL Server數據庫

[英]Unable to connect to SQL Server database in ASP.NET Web Admin Tool

就像標題所說的那樣,我正在嘗試為自己正在創建的網站扮演一些角色。

每當我進入安全選項卡時,就會顯示標題中的錯誤。

我已經使用aspnet_regsql向導為此配置數據庫。 數據庫創建成功 ,但是仍然出現錯誤。

到目前為止,這是webconfig

<?xml version="1.0"?>
<configuration>
 <configSections>
   <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
   </sectionGroup>

 </configSections>
 <entityFramework>
  <contexts>
   <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
     <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
   </context>
  </contexts>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
   <parameters>
     <parameter value="v11.0" />
   </parameters>
  </defaultConnectionFactory>
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
 </entityFramework>
  <connectionStrings>
    <add name="SchoolContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

 <system.web.webPages.razor>
   <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
     <add namespace="System.Web.Mvc" />
     <add namespace="System.Web.Mvc.Ajax" />
     <add namespace="System.Web.Mvc.Html" />
     <add namespace="System.Web.Optimization"/>
     <add namespace="System.Web.Routing" />
     <add namespace="TESTMVC" />
    </namespaces>
  </pages>
 </system.web.webPages.razor>


 <system.webServer>
  <handlers>
   <remove name="BlockViewHandler"/>
   <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
 </system.webServer>

  <system.web>
   <compilation>
    <assemblies>
     <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
   </compilation>

 </system.web>
</configuration>

我知道我可能在此xml中缺少一些會員標簽嗎? 誰能幫我修復webconfig文件?

此連接字符串用於顯示該數據庫中某些內容的頁面。 在此保存(localdb)\\ MSSQLLocalDB上,我具有由向導aspnet_regsql創建的aspnetdb。

<connectionStrings>
  <add name="SchoolContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>

根據您的評論,您是ASP.NET Membership的新手。 您提到的ASP.Net成員已有10到15年的歷史。 微軟在那幾年取代了它。

這是歷史-

  1. ASP.Net成員資格提供程序(使用aspnet_regsql生成表)
  2. ASP.NET通用提供程序
  3. 簡單會員資格提供者
  4. ASP.NET身份(最新版本)

由於您也是ASP.Net成員身份的新手,因此我個人建議使用ASP.Net身份。 這是Scott Allen的免費ASP.NET MVC 5基礎課程

借助Integrated Security=SSPI ,我相信您將以網站正在運行的任何帳戶(可能是apppool身份帳戶)連接到SQL Server。 您應該使用SQL創建用戶並使用這些憑據進行顯式連接,或者添加應用程序池標識以具有權限:

對於本地SQL Server(來自https://blogs.msdn.microsoft.com/ericparvin/2015/04/14/how-to-add-the-applicationpoolidentity-to-a-sql-server-login/ ):

  • 打開SQL Server Management Studio(SSMS)並連接到SQL Server。 在服務器級別打開安全文件夾,而不是數據庫的安全文件夾。
  • 右鍵單擊登錄名,然后選擇“新建登錄名”。
  • 對於登錄名,鍵入IIS APPPOOL \\ AppPoolName並單擊“不要單擊搜索”,然后選擇“確定”(如果執行搜索,它將解析為具有ServerName \\ AppPool Name的帳戶,而SQL將無法解析該帳戶的SID,因為它是虛擬的)
  • 選擇該帳戶的默認值,然后選擇確定以關閉對話框

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM