首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让ClientAccessPolicy.xml的WebHttpBehavior停止窃取/劫持IIS的根?

如何让ClientAccessPolicy.xml的WebHttpBehavior停止窃取/劫持IIS的根?
EN

Stack Overflow用户
提问于 2012-10-19 01:10:28
回答 1查看 431关注 0票数 4

我正在使用一个具有net.tcp WCF通信的Silverlight应用程序。我想在ServiceHost中自行托管ClientAccessPolicy.xml,并且策略文件必须在根目录上,端口80,根据Silverlight net.tcp要求(TCP4502-4534端口等)。

创建策略端点的代码如下所示:

代码语言:javascript
复制
host.AddServiceEndpoint(typeof(IPolicyGetter), new WebHttpBinding(), "http://localhost/").Behaviors.Add(new WebHttpBehavior());

当ServiceHost运行时,我可以看到我的http://127.0.0.1/ClientAccessPolicy.xml,但端口80上的所有网站都停止工作-我看到由端点生成的标准web页面"Endpoint not found“。当我关掉ServiceHost的时候,我可以看到我的网站,但是ClientAccessPolicy.xml不见了。

我已经尝试使用端点URI的完整路径:

代码语言:javascript
复制
policyUri.Scheme = "http";
policyUri.Port = 80;
policyUri.Query = "ClientAccessPolicy.xml";
host.AddServiceEndpoint(typeof(IPolicyGetter), new WebHttpBinding(), policyUri.ToString()).Behaviors.Add(new WebHttpBehavior());

但是这抛出了一个参数异常。将策略移动到子目录或其他端口将不起作用,因为Silverlight仅查看根web目录上的端口80。

显然,我只需将ClientAccessPolicy.xml复制到web根目录并禁用策略端点即可。有没有办法控制端点,使其只拦截对ClientAccessPolicy.xml的调用,而不窃取整个IIS80端口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 05:15:29

不能,您不能让两个进程监听同一个TCP/IP端口。如果您的ServiceHost正在侦听端口80,那么它将是响应该端口上的连接的唯一进程。

话虽如此,您可以让“主”进程监听端口80,并将连接重定向到“子”进程,但这超出了ServiceHost的范围和意图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12960060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档