Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从IIS连接到SQL数据库_Sql_Sql Server_Iis_Web Applications_Iis 7 - Fatal编程技术网

从IIS连接到SQL数据库

从IIS连接到SQL数据库,sql,sql-server,iis,web-applications,iis-7,Sql,Sql Server,Iis,Web Applications,Iis 7,这是我的连接字符串,web服务(托管在IIS中,在ApplicationPoolIdentity下运行)使用它连接到数据库 <add name="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl; provider=System.Data.SqlClient;provider connection string=

这是我的连接字符串,web服务(托管在IIS中,在ApplicationPoolIdentity下运行)使用它连接到数据库

<add name="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
provider=System.Data.SqlClient;provider connection string='Data Source=TestMachine;Initial Catalog=AdventureWorks;
Integrated Security=True;Connection Timeout=60;multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />

当我尝试访问该站点时,出现了一个异常:用户MyDomain\TestMachine$登录失败

为什么IIS尝试使用TestMachine而不是我的用户帐户(例如MyDomain\TestUser)进行连接? 我认为这可能是因为它托管在ApplicationPoolIdentity下,而ApplicationPoolIdentity使用机器凭据

如何指定它以使用发出请求的用户的上下文,而不必在自定义标识下运行应用程序(即,我希望它在ApplicationPoolIdentity下继续运行)


如果我在web.config文件中设置了
,则我可以从IIS服务器计算机本地访问该站点,访问数据库正常,但远程访问该站点失败。我的Web服务正在使用Windows身份验证。对此有何想法?

您需要在IIS中启用Windows身份验证和ASP.NET模拟

然后在web.config中

  <system.web>
    <authentication mode="Windows" />
    <identity impersonate="true" />
</system.web>

除了impersonate=“false”之外,我还有相同的东西。如果设置impersonate=“true”,则无法从远程计算机访问网站。