我有一个Silverlight Web应用程序解决方案,其中包含支持Silverlight的WCF服务。在过去的6个月左右,一切都运转良好。我可以毫无问题地通过服务访问数据。
我今天开始工作,打开解决方案,再次运行它,突然之间,WCF服务端口和Silverlight想要用来访问服务的端口不匹配。
港口如何以及为何突然改变?
如何指定要使用的端口?我从来没有指定过一个端口 - 它只是起作用了。我在web.config或服务CS文件中找不到端口规范。
答案 0 :(得分:3)
听起来你正在谈论visual studio中的解决方案,你可以通过点击Web项目属性查看默认端口,转到Web选项卡,在“Servers”部分你会看到默认的端口号,你手动分配特定端口或使用自动分配端口。
之前我见过类似的情况,它发生在使用端口时。您可以通过更改项目属性中的端口号重新分配端口,重新编译Web解决方案,然后更新客户端项目中的Web服务引用。希望能帮助到你。
答案 1 :(得分:1)
您使用的是内置的Cassini网络服务器吗? WCF Web服务是否与托管页面属于同一个Web项目?或者它是一个单独的项目?
如果您正在使用Cassini,则会在项目属性页面的“Web”选项卡上指定它在开发环境中侦听的端口。通常,Visual Studio会自动分配一个端口,但如果您将其用作Web服务,则需要告诉它使用哪个特定端口(例如,51000或其他)。它可能始终默认为同一个端口,但如果它检测到此端口正在使用(可能是您机器上从未退出的另一个Cassini实例),则会切换端口。
您还应该检查Silverlight项目中的ServiceReferences.ClientConfig文件,以查看它尝试连接的端口。
答案 2 :(得分:0)
WCF服务是否在IIS中托管?有人改了一些IIS配置吗?
在IIS中托管时,IIS服务器名称,端口,虚拟目录以及* .svc文件的名称和位置定义服务器端的服务地址。如果有任何这些变化 - >您的服务将不再可用。
答案 3 :(得分:0)
您可能有其他一些软件开始使用该端口(Skype过去曾让我感到困惑)