You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svcutil无法为asmx生成异步方法及GetEndpointAddress的问题排查

Svcutil代码生成问题解决方法

1. 同时生成异步与同步方法

默认使用/async参数只会生成异步方法,要同时保留同步方法,必须添加/sync参数,修改后的命令如下:

svcutil.exe /out:"C:\MyDir\reference.cs" /async /sync /n:*,MyNamespace http://whatever.com/aa.asmx

如果是较新版本的svcutil,若上述参数不生效,可尝试使用更明确的参数名:

svcutil.exe /out:"C:\MyDir\reference.cs" /generateAsync /generateSync /n:*,MyNamespace http://whatever.com/aa.asmx

2. 生成GetEndpointAddress方法

GetEndpointAddress方法是客户端结合配置文件使用时才会自动生成的逻辑,你的命令仅生成了代理类代码,未生成配套配置文件。需要添加/config参数指定配置文件输出路径,修改后的命令:

svcutil.exe /out:"C:\MyDir\reference.cs" /async /sync /config:"C:\MyDir\output.config" /n:*,MyNamespace http://whatever.com/aa.asmx

生成配置文件后,客户端类会依赖配置中的端点信息,自动包含GetEndpointAddress相关处理逻辑。

额外适配ASMX服务的注意点

ASMX属于旧式Web服务,svcutil对其支持与WCF服务有差异,若上述参数仍不生效,可添加/serializer:XmlSerializer参数(ASMX默认使用XmlSerializer):

svcutil.exe /out:"C:\MyDir\reference.cs" /async /sync /serializer:XmlSerializer /config:"C:\MyDir\output.config" /n:*,MyNamespace http://whatever.com/aa.asmx

同时要确保svcutil版本与目标.NET框架版本匹配,不同版本的参数可能存在细微差异。

内容的提问来源于stack exchange,提问作者developer9969

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 09:44:54