如何在IIS 7上发布MVC 4项目

问题描述:

我想在IIS 7.0上使用SQL Server 2008 R2发布MVC 4.0项目。 我使用“Windows身份验证”和我的连接字符串是如何在IIS 7上发布MVC 4项目

<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运行,那么它不给任何异常,但是当我要发布从本地服务器这个项目,时间它给了以下异常

enter image description here

+4

设置'通过在你的web.config',然后检查错误 – devqon 2014-10-13 14:00:49

+1

什么是SQL Server的服务器的名称?是DEW-PC \ SQLEXPRESS吗?或(本地)\ sqlexpress或只是(本地)? – 2014-10-17 09:33:42

+1

您可以将web.config文件中的设置为上述状态,或者如果可能记录任何其他异常详细信息,请参阅Windows Eventviewer部分。 – 2014-10-17 10:30:34

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

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

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

+0

我已经尝试第一个条件,但不在这里工作.. :( 和我知道第二个条件工作正常。但我需要在'Windows身份验证模式' – mgsdew 2014-10-18 17:11:55

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

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

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

<configuration> 
    <system.web> 
    <authentication mode="Windows"/> 
    <identity impersonate="true"/> 
    ... 
    </system.web> 
</configuration> 
  1. (推荐)你的ASP.NET正在作为网络服务或具有有限权限的用户。无论你的Web服务器和数据库是在同一台计算机或MS SQL数据库在同一个域

    承认你的ASP.NET使用该帐户(如网络服务)login权限上

    如果你的Web服务器和数据库是不同的计算机上,你必须授予登录和访问Web服务器(使用以下命令),并放置在domainName\WebServerMachineName$数据库角色

  2. 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

开始=>
+0

我尝试你的第一个解决方案,但仍然doesn 't work ... 我知道这个项目完美运行,当我在SQL Server中给'用户名'和'密码'...但我想在'Windows身份验证模式'下运行此项目 – mgsdew 2014-10-18 17:14:58

+0

检查你的配置,并做一个IIS重新启动,看看它是否有效 http://*.com/questions/21891605/getting-iis-to-impersonate-the-windows-user-to-sql-server-in-an-intranet-environ – 2014-10-19 04:15:25