非常沮丧与所有这一切,希望有人可以协助。clientaccesspolicy.xml突然停止工作(WCF/Silverlight)
我有一个Silverlight应用程序和WCF一起工作,一年没有问题。为了让他们工作,我最初有些痛苦,但终于在帮助下完成了它。所有的痛苦都来自配置/安全性,401的,跨域的地狱等。
我有一切设置的方式是,我有一个WCF服务驻留在它自己的应用程序/目录,并运行在它自己的应用程序池。
在同一个Web服务器(IIS7)上,我有另一个指向上述服务的Silverlight应用程序的应用程序/目录。
服务器名称(本练习)是WEBSERVER1。我们为它创建了一个名为WEB1的CNAME。在过去,如果用户去http://WEB1/MyApp/或http://WEBSERVER1/MyApp/它会起作用。突然昨天它开始表现不好。普通用户开始获得Windows挑战/响应提示(即使他们输入信息他们将得到401错误)。
我的WCF服务在启用匿名访问的站点中运行(并且这一直工作)。 我的Silverlight应用程序在集成了Windows的站点中运行(并且这一直工作),因为我们在连接时捕获了Windows用户名。
为了记录,我昨天创建了一个新的应用程序池,其中运行了ASP.NET应用程序。这似乎工作正常,但有一个机会创建这个新的应用程序池和应用程序/目录已导致改变。
我有一个clientaccesspolicy.xml在我的wwwroot文件夹,以及上述两个应用程序(以防万一)的每个文件夹。我曾试图通过Negotiate作为提供者来推广NTLM(因为这对另一个服务器上的另一个问题起作用)。
在尝试了一些更改后,我甚至无法让我每次调用它时表现得都一样。有时它会提示我输入凭据。其他时候,它会工作,但后来说它无法与“未找到”WCF服务连接。其他时候,它实际上可以正常工作,但前提是我使用的是实际的服务器名称而不是CNAME。在使用CNAME时,即使我在每个目录根目录中都有跨域xml文件,我仍会得到跨域错误。
这是一场噩梦,并且通过比较使得高级算法分析看起来有趣且简单。微软是否意识到他们如何组合这些(IIS7/WCF/Silverlight/providers/permissions /神秘或缺失的错误消息)才能起作用?
你可以运行Fiddler并在这里添加日志,以便我们可以看到发生了什么?下载http://www.fiddler2.com。 – Bryant 2012-03-13 18:05:23
我实际上正在运行Fiddler2,会尝试用日志进行更新 – enforge 2012-03-13 18:09:53
不知道如何在这里添加日志,但有一行查找根并获得200(成功)。下一行查找/app/Silverlight.js,它返回一个304(缓存?)。下一行是/clientaccesspolicy.xml中的401错误(即使该文件存在),并且下一行是/crossdomain.xml文件的401行。 – enforge 2012-03-13 18:44:53