wcf主机控制台服务代码到iis7?

时间:2011-10-15 17:29:27

标签: c# wcf

我创建了一个托管服务的控制台应用程序...... 现在我想接受服务并在iis7上托管它

我创建了.svc文件

配置了iis7

http://i.stack.imgur.com/Ehfhs.jpg

enter image description here

我放在外部目录中的所有编译代码:

http://i.stack.imgur.com/k0gAh.jpg

enter image description here

和APP代码文件夹中的bin文件...

它告诉我: http://i.stack.imgur.com/B3NKn.jpg

enter image description here

我错过了什么?

我可以将控制台主机转换为iis主机吗?

首先应该是网站吗?

该服务是否还需要配置(在我的控制台应用程序中它没有 - 只有主机).....?附:你可以看到我在这里克隆了配置。 (对服务目录)以及输出目录。

1 个答案:

答案 0 :(得分:0)

最简单的方法是创建一个新的空ASP.NET应用程序,您可以向其添加新的WCF服务。然后,只需将生成的代码替换为您的服务代码即可。

我认为您的代码不起作用的原因是因为您有一个ASP.NET网站(而不是ASP.NET应用程序),而在.svc文件中,您只是指定服务的名称而不是代码隐藏包含它的文件。由于未编译ASP.NET网站,因此您需要specify this

<% @ServiceHost 
    Service="Service.Class1" 
    Debug="Debug"
    Language="C#" 
    CodeBehind="~/App_Code/Class1.cs"
%>

另外,您在APP代码文件夹中提到了一些 bin文件。如果在程序集中有一些预编译服务,则此程序集应位于〜/ bin文件夹中。在预编译的ASP.NET应用程序中,您不应该有任何App_Code文件夹。它实际上有两种不同的模式:应用程序与网站。由你来决定你喜欢哪种模式。