2011-03-10 39 views
3

当我在Visual Studio中创建一个新的“WCF服务应用程序”并右键单击Service1.svc时,我可以选择“在浏览器中查看”。 Web浏览器出现,显示http://localhost:50311/Service1.svc,它说“您已经创建了一项服务。”这怎么发生的?

Service1 Service 

You have created a service. 

To test this service, you will need to create a client and use it to call the service. You can do this using the svcutil.exe tool from the command line with the following syntax: 

svcutil.exe http://localhost:50311/Service1.svc?wsdl 
... 

服务在某种程度上似乎绑到Visual Studio本身,因为该网页将无法访问,如果我关闭该解决方案。这是怎么回事?我没有安装网络服务器,并且我没有(明知)启动服务。显示的网页的来源是什么,为什么它在50311端口上?该页面可以自定义吗?

+0

这听起来像VS做了什么你告诉它做的事。也许你可以描述你想要做什么,有人可能会建议如何到达那里。 –

+0

主要是我只想了解发生了什么。如果我用Ctrl + F5运行,我得到一个自称为“ASP.NET Development Server 9.0.0.0”的Web服务器的根目录。我甚至没有意识到WCF服务通常在Web服务器中运行,并且我不知道VS是否带有Web服务器,尽管当我想到它时很明显(否则它将如何支持ASP.NET无法使用的服务器)这只是我以前从未使用ASP.NET而已。) – Qwertie

+0

我的实际目标是在Windows服务中创建一个服务器,以便与同一台计算机或另一台计算机上的客户端进程进行通信。通信协议是不重要的,除了我想最大限度地减少消息的大小,以防通信链路速度慢,并且我需要支持从服务器到客户端的“推送”消息。除了作为Windows服务运行外,它还应该能够作为独立的可执行文件运行。 – Qwertie

回答

3

您所看到的是开发Web服务器,它在您运行需要Web服务器的项目的调试器实例时启动。 (WCF,ASP.NET)。

端口50311取决于您的项目设置(很可能是随机的,但您可以指定)。

.svc文件的页面不打算自定义。由于该服务正在等待呼叫者,因此该默认页面会告诉您它正在正常运行。

请记住,WCF提供了几种使用各种协议(HTTP,TCP)的绑定选项。根据您选择的协议,您必须在IIS,Windows服务或其他地方托管。默认情况下,新服务将采用可在IIS中工作的绑定。

退房Introduction to Building Windows Communication Foundation Services

相关问题