2015-12-03 94 views
0

我创建WCF服务和一些简单的WPF应用程序消费它。当我在Visual Studio中运行项目时,WCF测试客户端打开,应用程序工作正常,在服务工作中定义了方法。WCF服务 - 不工作

但我需要在Windows服务来举办这个WCF服务。我遵循this,使用Installutil.exe安装服务并运行该服务。一切都很好,它的工作。

然而,当我试图直接从应用程序的调试文件夹中打开与WPF应用程序的可执行文件,我得到这个错误:

zad8. has stopped working

选择与调试它的选项后VS的新实例,我得到

XamlParseException occured in PresentationFramework.dll

堆栈跟踪显示是这样的:

connection can't be started, because the target computer is actively refusing it

你有什么想法可能会出错?

回答

0

幸运的是,我已经成功地拿出解决方案。我想我应该发布它,也许有一天它会帮助某人:)

我确实犯了两个错误,但其中一个不幸是由于我提到的教程(here)导致的暂时停电。 在步骤5中,本教程的点8,有覆盖的OnStart()方法的一个例子:

protected override void OnStart(string[] args) 
{ 
    if (myServiceHost != null) 
    { 
     myServiceHost.Close(); 
    } 
    myServiceHost = new ServiceHost(typeof(Service1)); 
    myServiceHost.Open(); 
} 

当心,即Service1是在这种背景下模糊的,因为它是Windows服务项目类的名称以及WCF服务类的名称。它应该使用完全限定名称(这里是WcfServiceLibrary1.Service1)编写。在我的情况下,服务名称是不同的,我只是把Service1在那里匆忙。无论如何..

如果有人拥有它并且仍然遇到同样的问题(应用程序停止工作),我认为您应该尝试在Visual Studio中打开该项目并尝试将客户端使用应用程序作为新的实例(右键点击项目 - > Debug - > Start as new instance ...)。

这似乎微不足道,但是当u按F5键或Ctrl + F5那么即使u有只有那些项目设置为启动项目,VS将举办它的客户呢。在我的情况下,它确实很重要,因为我需要使用隔离存储文件。因为它保留在服务端,所以我在VS创建的IIS服务器中创建了这个文件。不知何故,我创建这样的文件的方法已经设置FileMode.Open(),并造成暗恋,因为在Windows服务中它不存在,并且无法创建新的并且需要正确运行它。

更重要的是,它只是给我看,这个问题不能正确回答,因为我提供的数据是不够的,这是微妙的。

干杯:)