我正在尝试使用ASP.Net AuthenticationService来验证Silverlight应用程序中的用户。我有一个Web应用程序,其服务指向“System.Web.ApplicationServices.AuthenticationService”。我的web.config定义了服务,端点,绑定,行为等。对于成员资格数据库,我使用SQL Express和MDF文件。
我相当确定所有这些设置都正确,因为如果我在Visual Studio中运行它,一切正常。我的Silverlight应用程序调用AuthenticationService,传入用户名和密码,然后返回响应。
但是,当我部署到IIS时,调用AuthenticationService始终响应异常:“远程服务器返回错误:Not Found”
我怀疑这与SQL Express有关,但无法确定问题所在。我试过在System帐户下运行SQL Express。我尝试向网络服务帐户授予我的App_Data文件夹的完全权限。我尝试了很多不同的连接字符串。
在任何情况下,任何人都可以提供有关如何使用带有SQL Express和IIS的AuthenticationService部署Silverlight应用程序的任何提示或参考吗?
更新:我安装了SQL Server 2008的试用版并获得了相同的结果。在使用Visual Studio运行时,我可以使一切正常工作,但不能在IIS中运行。如果有人有关于如何在IIS中使用Silverlight的AuthenticationService的参考或教程,我将不胜感激。
更新2:问题在于我在SQL Server中的身份验证设置。我能够通过启用跟踪来跟踪这一情况,如评论中所建议的那样。我已经更新了有关如何调试此类问题的问题,其中您的服务调用在Visual Studio中工作但在IIS中不工作。
答案 0 :(得分:3)
例如,我已将此代码添加到配置中:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Critical,Error" >
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Critical,Error">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="D:\WcfLog.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml" />
</sharedListeners>
<trace autoflush="true" />
Microsoft Service Trace Viewer可以打开扩展名为“* .svclog”的文件。 现在异常更加明显。