【问题标题】:wcf host console service code to iis7?wcf主机控制台服务代码到iis7?
【发布时间】:2011-10-16 01:43:08
【问题描述】:

我创建了一个托管服务的控制台应用程序... 现在我想使用该服务并将其托管在 iis7 上

我创建了 .svc 文件

配置了 iis7

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

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

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

还有APP代码文件夹里面的bin文件……

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

我错过了什么?

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

首先应该是网站吗?

该服务是否还需要配置(在我的控制台应用程序中它没有 - 只有主机).....? p.s.如您所见,我确实在此处克隆了配置。 (到服务目录)以及输出目录。

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    最简单的方法是创建一个新的空 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 文件夹。这实际上是 2 种不同的模式:应用程序与网站。由您决定您喜欢哪种模式。

    【讨论】:

    • 我有我的控制台主机。我只想将主机从控制台转换为 iis .....如果我想在 iis 上托管它,它必须是 asp.net 吗?不能只接受服务吗?
    • @RoyiNamir,是的,它必须是一个 ASP.NET 应用程序。 IIS 中没有服务之类的东西。 WCF 服务托管在 IIS 的 ASP.NET 应用程序中。但正如我所说,我认为您在 .svc 文件中缺少代码隐藏指令,因为您使用的是 ASP.NET 网站。
    • 我之前也添加了它,然后又将其删除 - 仍然无法正常工作。我想它必须从一开始就是一个asp.net 网站。那么 WAS 到底是什么?它应该是主机也是服务,,,?
    • @RoyiNamir,WAS 是 IIS 中的一个特殊模块,它允许您直接托管使用二进制绑定(例如 netTcpBinding)的 WCF 服务。
    • 那么,如果我的控制台托管了一个 netTcpBinding 服务 - 我应该能够在 iis7 上托管它吗?或者,它必须是 iis 托管的 asp.net 网站...?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    相关资源
    最近更新 更多