【问题标题】:How to Publishing MVC 4 Project on IIS 7如何在 IIS 7 上发布 MVC 4 项目
【发布时间】:2014-09-30 04:49:05
【问题描述】:

我正在尝试使用 SQL Server 2008 R2 在 IIS 7.0 上发布 MVC 4.0 项目。 我使用“Windows 身份验证”,我的连接字符串是

   <add name="PFTMEntities" connectionString="metadata=res://*/PFModel.csdl|res://*/PFModel.ssdl|res://*/PFModel.msl;provider=System.Data.SqlClient;provider connection string=&quot; data source=DEW-PC\SQLEXPRESS;initial catalog=PFTM;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;persist security info=True;&quot;" providerName="System.Data.EntityClient" />

当我构建这个项目并从 VS'12 运行时,它不会给出任何异常,但是当我要从本地服务器发布这个项目时,它会给出以下异常

【问题讨论】:

  • 在你的web.config中设置&lt;CustomErrors = "Off" /&gt;,然后检查错误
  • 服务器上的 sql server 的名称是什么?是 DEW-PC\SQLEXPRESS 吗?还是(本地)\sqlexpress 或只是(本地)?
  • 您可以将 web.config 文件中的 设置为上述状态,或者如果可能记录任何其他异常详细信息,请参阅 Windows 事件查看器部分。

标签: asp.net-mvc-4 iis-7 sql-server-2008-r2


【解决方案1】:

三种情况,取决于您的 ASP.NET 应用程序

  1. (由于性能原因不推荐)您的 ASP.NET 使用 Windows 身份验证,登录的用户可以访问 MS SQL 数据库

    在这种情况下,您可以使用模拟来使用与登录用户相同的凭据来连接数据库

<configuration>
  <system.web>
    <authentication mode="Windows"/>
    <identity impersonate="true"/>
  ...
  </system.web>
</configuration>
  1. (推荐)您的 ASP.NET 作为 NetworkService 或具有有限权限的用户运行。您的网络服务器和数据库位于同一台计算机或同一域中

    授予您的 ASP.NET 正在使用的帐户(例如 NetworkService)login MS SQL 数据库的权限

    如果您的 Web 服务器和数据库位于不同的计算机上,您必须授予对 Web 服务器的登录和访问权限(使用以下命令)并将 domainName\WebServerMachineName$ 置于数据库角色中

exec sp_grantlogin 'domainName\WebServerMachineName$'
exec sp_grantdbaccess 'domainName\WebServerMachineName$'
  1. (推荐)您的 ASP.NET 作为 AppPoolIdentity 运行,不得更改为其他帐户以上两种都不适用

    您必须在 MS SQL Server 上启用混合身份验证,并切换到使用用户名和密码作为连接字符串

来源:http://msdn.microsoft.com/en-us/library/ff647396.aspx

【讨论】:

  • 我尝试了您的第一个解决方案..但仍然无法正常工作...我知道当我在 SQL Server 中提供“用户名”和“密码”时,该项目可以完美运行...但我想在“Windows 身份验证模式”下运行此项目
  • 根据以下内容检查您的配置,然后重新启动 IIS 并查看它是否有效 stackoverflow.com/questions/21891605/…
【解决方案2】:

网站上的数据库配置有几个方面可能会导致问题。

  1. 服务器使用 SQL Server 的 Express 版本还是正式版本? 您可以尝试将“data source=DEW-PC\SQLEXPRESS”更改为“data source=.”。

  2. SQL Server 是否允许 Network_Service 访问 PFTM 数据库? 您需要在 SQL Server 2008 R2 中为 Network_Service 创建一个登录名,并在 PFTM 数据库中创建一个用户。

【讨论】:

  • 我已经尝试过第一个条件,但在这里不起作用.. :( 我知道第二个条件可以正常工作。但我需要在“Windows 身份验证模式”下工作这个项目
猜你喜欢
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
相关资源
最近更新 更多