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

VS 2019添加Service Reference不显示且csproj已关联无法使用如何解决

解决VS2019添加ASMX服务引用后无法显示、无法调用的问题

1 先清理现有无效引用

  • 右键项目选择「管理连接的服务」,在已安装服务列表找到该KPSPublic服务项,点击删除
  • 关闭VS2019,打开项目对应的.csproj文件,手动删除所有和该服务相关的配置节点,包括<WCFMetadata>、<ServiceReference>对应的ItemGroup内容,保存后重新打开VS

2 重新按正确流程添加服务引用

  • 右键项目 → 选择「添加」→「服务引用」
  • 弹窗左侧选择「Web 服务(ASMX)」,点击「下一步」
  • URI输入框填写WSDL地址:https://tckimlik.nvi.gov.tr/service/kpspublic.asmx?WSDL,点击「转到」
  • 等待服务元数据加载完成后,自定义命名空间(例如KpsPublicService),点击「完成」等待VS自动生成代理类
  • 生成完成后重启一次VS,再打开「管理连接的服务」即可看到对应服务项,解决方案资源管理器的「Connected Services」节点下也会出现对应命名空间的服务目录

3 备选方案:手动生成代理类

如果上述操作后仍然无法显示服务,可通过命令行直接生成代理类引入项目:

  • 打开VS2019对应的开发者命令提示符(Developer Command Prompt for VS 2019)
  • 执行wsdl命令生成代理类:
    wsdl /language:C# /out:KpsPublicService.cs https://tckimlik.nvi.gov.tr/service/kpspublic.asmx?WSDL
    
  • 命令执行完成后,将生成的KpsPublicService.cs文件直接添加到项目中即可
  • 提前在项目中添加System.Web.Services程序集引用:右键项目 → 「添加」→「引用」→ 找到「程序集」分类下的System.Web.Services勾选确认即可

4 调用验证示例

// 引入服务命名空间
using KpsPublicService;

// 初始化服务客户端
var kpsClient = new KPSPublic();
// 调用身份证号验证方法示例
bool verifyResult = kpsClient.TCKimlikNoDogrula(12345678901, "名字", "姓氏", 1990);

注意事项

  • 确保项目运行环境可以正常访问该HTTPS服务地址,无防火墙、代理拦截
  • 若出现证书验证错误,可在调用服务前添加以下代码跳过验证(仅测试环境使用,生产环境建议导入对应根证书保证安全):
    System.Net.ServicePointManager.ServerCertificateValidationCallback += 
    (sender, cert, chain, sslPolicyErrors) => true;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:27:02