【问题标题】:Adding ASMX service to IIS for use with Biztalk将 ASMX 服务添加到 IIS 以与 Biztalk 一起使用
【发布时间】:2019-08-29 12:15:09
【问题描述】:

我创建了一个本地 web 服务 (.asmx),我想将它添加到 IIS。该服务需要从 Biztalk 中的发送适配器调用。

我在 Visual Studio 中的项目结构如下:

有一个 .asmx 文件,其中包含一个 Web 方法,请参见下面的代码:

public class LocalWebService : System.Web.Services.WebService
    {
        private BankConnectClient client;
        [WebMethod]
        public void TransferPayment()
        {
            ProcessDirectory("C:\\Test\\BankConnectTestFiles");
        }

我对 IIS 不是很熟悉,所以我不知道添加此服务以在我的本地主机上运行的最佳方法。我尝试添加一个新网站并将项目文件夹放在 C:\inetpub\wwwroot 中,然后我在 IIS 中使用以下设置对其进行引用:

但是当我浏览到根目录 http://localhost:61406/ 时,我收到 HTTP 错误 403.14。

将 asmx Web 服务部署到 IIS,然后使用 WCF-Custom 或 WCF-BasicHttp 适配器调用 Biztalk 的正确方法是什么?

【问题讨论】:

  • 网址错误。 ASMX Web 服务 URL 必须包含实际的 .asmx 文件名和方法名。此外,现在大多数人都使用 ASP.NET Web API 或 ASP.NET Core,您应该认真考虑。
  • 你在 IIS 中配置了什么身份验证?
  • 感谢您的回复。我在我的 URL 中包含了 .asmx 文件,并为运行该服务的服务帐户授予了该文件夹的权限。它现在似乎按预期工作。我考虑过使用 ASP.NET Web API,但我想保持简单,因为我需要从 Biztalk 调用此服务。我了解 WCF 适配器主要与 .svc 服务一起使用,但其中一些仍然支持 .asmx。

标签: c# wcf iis biztalk asmx


【解决方案1】:

看来问题已经解决了。服务 URL 需要 LocalWebService.asmx 后缀。
此外,据我所知,WCF 中的 BasicHttpBinding 旨在兼容 ASMX Web 服务,为什么不尝试使用 BasicHttpBinding 创建 WCF 服务。 BizTalk 也支持这一点。
我做了一个demo,希望对你有用。
VS模板。
将以下代码 sn-ps 添加到默认 webconfig 中。

<protocolMapping>
  <add binding="basicHttpsBinding" scheme="https" />
  <!--add the following line to support http protocol-->
  <add binding="basicHttpBinding" scheme="http"/>
</protocolMapping>

然后将项目发布到 IIS 文件夹,并将 http 绑定添加到 IIS 站点绑定模块。我们可能需要启用 WCF 支持。

结果。
如果有什么可以帮助的,请随时告诉我。

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    相关资源
    最近更新 更多