2015-05-12 71 views
0

我有两个相同的Windows 2012 R2环境。一个用于开发,另一个用于升级。IIS应用程序池,服务帐户和MSSQL连接

对于我的服务器端语言,我使用的是PHP和Laravel 4.1 Framework。

我有一个服务帐户,我用这两种环境连接到我们的MSSQL开发数据库。我将服务帐户设置为应用程序池,并将该应用程序池分配给IIS 8.5中的应用程序。我已经做了很多次,没有问题。这避免了我们将密码存储在Laravel内的PHP数据库配置文件中。

现在,我构建的应用程序在开发中运行良好。我可以使用上述方法连接到数据库。我复制相同的代码交给分期,再次使用相同的环境,相同的服务帐户,但我得到了可怕的:

PDOException 
SQLSTATE[28000]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 

因为它是在发展的工作没有问题,因为我有其他的应用我staging box成功地能够连接,我完全丧失了为什么这个应用程序无法在测试中连接。我昨天花了几个小时解决问题,没有运气

任何想法?

+0

您确定您已将正确的应用程序池分配给错误应用程序吗? –

+0

哦,是的,双重,三重,四重检查。这很奇怪,因为即使我分配了一个不同的应用程序池,而不是抛出一个错误,指出服务帐户无法连接,它也会给我带来同样的问题。就好像应用程序没有绑定到应用程序池,即使它是。 – TalkingHeads

+0

连接字符串如何?他们在开发和舞台上都一样吗? –

回答

0

该问题与ApplicationHost.config文件有关。其他应用程序和应用程序池具有userName =“”属性,导致该问题的应用程序没有。我手动添加了属性,这解决了我的问题。

<location path="Default Web Site/application-name"> 
<system.webServer> 
<security> 
<authentication> 
<basicAuthentication enabled="false" /> 
<anonymousAuthentication enabled="true" userName="" /> 
</authentication> 
</security> 
<handlers> 
相关问题