c# - 将 ASMX 服务添加到 IIS 以与 Biztalk 一起使用
问题描述
我创建了一个本地 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 的正确方法是什么?
解决方案
看来问题已经解决了。服务 URL 需要 LocalWebService.asmx 后缀。
此外,据我所知,WCF 中的 BasicHttpBinding 旨在兼容 ASMX Web 服务,为什么不尝试使用 BasicHttpBinding 创建 WCF 服务。BizTalk 也支持这一点。
我做了一个demo,希望对你有用。
VS 模板。
将以下代码片段添加到默认 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 支持。结果。
如果有什么我可以帮忙的,请随时告诉我。
推荐阅读
- swift - 如何通过swift macos将辅助字符串与主字符串分开?
- mariadb - 如何解决 MariaBD 自动递增密钥问题
- flutter - 带有 Type 对象的 Dart 提要模板/通用类,可能吗?
- ios - 如何在swift中应用属性字符串不同的行间距
- php - 如何使用 PHP 从 JSON 响应中的列表中提取特定值?
- c# - 以编程方式压缩文件,如本机发送到压缩的 zip 文件夹
- powerbi - 将 Defender for Endpoint ATP 指标导出到 Power BI
- python - 从 jupyter 将 sankey 保存到文件中
- c# - 将 2 个 CSV 文件合并为一个 CSV 文件
- php - php:7.3-fpm-alpine docker-php-ext-install readline