如何解决如何仅从特定端点通过WSDL生成WCF客户端?
我有一个大型企业Web服务的WSDL,其中包括多个端点,我只打算使用其中的一个端点。
我尝试通过在项目中添加服务引用在Visual Studio中生成服务客户端。问题是,由于服务中可用的终结点数量很多,Microsoft Windows [Version 6.3.9600]
C:\Users\gudmo_000>pip install simple_draw
Collecting simple_draw
Using cached simple_draw-2.6.8.tar.gz (7.2 kB)
Collecting pygame==2.0.0.dev8
Using cached pygame-2.0.0.dev8.tar.gz (5.5 MB)
ERROR: Command errored out with exit status 1:
command: 'c:\users\gudmo_000\appdata\local\programs\python\python39\python.
exe' -c 'import sys,setuptools,tokenize; sys.argv[0] = '"'"'C:\\Users\\gudmo_0
00\\AppData\\Local\\Temp\\pip-install-6ybn9qp8\\pygame\\setup.py'"'"'; __file__=
'"'"'C:\\Users\\gudmo_000\\AppData\\Local\\Temp\\pip-install-6ybn9qp8\\pygame\\s
etup.py'"'"';f=getattr(tokenize,'"'"'open'"'"',open)(__file__);code=f.read().r
eplace('"'"'\r\n'"'"','"'"'\n'"'"');f.close();exec(compile(code,__file__,'"'"
'exec'"'"'))' egg_info --egg-base 'C:\Users\gudmo_000\AppData\Local\Temp\pip-pip
-egg-info-6jzfdnhw'
cwd: C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\
Complete output (54 lines):
WARNING,No "Setup" File Exists,Running "buildconfig/config.py"
Using WINDOWS configuration...
Traceback (most recent call last):
File "<string>",line 1,in <module>
File "C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\se
tup.py",line 295,in <module>
buildconfig.config.main(AUTO_CONFIG)
File "C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\bu
ildconfig\config.py",line 221,in main
deps = CFG.main(**kwds)
File "C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\bu
ildconfig\config_win.py",line 559,in main
and download_win_prebuilt.ask(**download_kwargs):
File "C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\bu
ildconfig\download_win_prebuilt.py",line 275,in ask
update(x86=x86,x64=x64,sdl2=sdl2)
File "C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\bu
ildconfig\download_win_prebuilt.py",line 258,in update
download_prebuilts(download_dir,x86=x86,line 107,in download_prebuilts
download_sha1_unzip(url,checksum,temp_dir,1)
File "C:\Users\gudmo_000\AppData\Local\Temp\pip-install-6ybn9qp8\pygame\bu
ildconfig\download_win_prebuilt.py",line 40,in download_sha1_unzip
response = urllib.urlopen(request).read()
File "c:\users\gudmo_000\appdata\local\programs\python\python39\lib\urllib
\request.py",line 214,in urlopen
return opener.open(url,data,timeout)
File "c:\users\gudmo_000\appdata\local\programs\python\python39\lib\urllib
\request.py",line 523,in open
response = meth(req,response)
File "c:\users\gudmo_000\appdata\local\programs\python\python39\lib\urllib
\request.py",line 632,in http_response
response = self.parent.error(
File "c:\users\gudmo_000\appdata\local\programs\python\python39\lib\urllib
\request.py",line 561,in error
return self._call_chain(*args)
File "c:\users\gudmo_000\appdata\local\programs\python\python39\lib\urllib
\request.py",line 494,in _call_chain
result = func(*args)
File "c:\users\gudmo_000\appdata\local\programs\python\python39\lib\urllib
\request.py",line 641,in http_error_default
raise HTTPError(req.full_url,code,msg,hdrs,fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
Making dir :prebuilt_downloads:
Downloading... https://www.libsdl.org/release/SDL2-devel-2.0.12-VC.zip 6839b
6ec345ef754a6585ab24f04e125e88c3392
Unzipping :prebuilt_downloads\SDL2-devel-2.0.12-VC.zip:
Downloading... https://www.libsdl.org/projects/SDL_image/release/SDL2_image-
devel-2.0.5-VC.zip 137f86474691f4e12e76e07d58d5920c8d844d5b
Unzipping :prebuilt_downloads\SDL2_image-devel-2.0.5-VC.zip:
Downloading... https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-deve
l-2.0.15-VC.zip 1436df41ebc47ac36e02ec9bda5699e80ff9bd27
Unzipping :prebuilt_downloads\SDL2_ttf-devel-2.0.15-VC.zip:
Downloading... https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-
devel-2.0.4-VC.zip 9097148f4529cf19f805ccd007618dec280f0ecc
Unzipping :prebuilt_downloads\SDL2_mixer-devel-2.0.4-VC.zip:
Downloading... https://www.ijg.org/files/jpegsr9d.zip ed10aa2b5a0fcfe74f8a6f
7611aeb346b06a1f99
Unzipping :prebuilt_downloads\jpegsr9d.zip:
Downloading... https://bitbucket.org/llindstrom/pygame/downloads/prebuilt-x6
4-pygame-1.9.2-20150922.zip 3a5af3427b3aa13a0aaf5c4cb08daaed341613ed
---
For help with compilation see:
https://www.pygame.org/wiki/CompileWindows
To contribute to pygame development see:
https://www.pygame.org/contribute.html
---
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check th
e logs for full command output.
中生成的客户端代码最终拥有超过1,400,000行,而Visual Studio似乎很难处理它(IntelliSense通常会挂起,有时整个VS都崩溃了),我想由于这个原因,构建时间也会更长。
在数百个端点中,我将只使用一个,而不需要其余的。
是否可以通过Visual Studio的Service Reference GUI或Reference.cs
从WSDL仅针对特定端点生成客户端代码?否则,是否还有其他简单的方法可以做到这一点?
解决方法
我没有找到从WSDL文件为特定端点生成客户端的任何方法。但是您可以通过渠道工厂单独调用端点的服务。这是演示:
EndpointAddress address = new EndpointAddress("http://localhost:8000/GettingStarted/CalculatorService1111");
BasicHttpBinding binding =new BasicHttpBinding();
ChannelFactory<ICalculator> factory = new
ChannelFactory<ICalculator>(binding,address);
ICalculator chanel = factory.CreateChannel();
您需要调用该终结点并传递该终结点的地址,定义相应的绑定,然后声明通道工厂。因此,您可以在服务中调用该方法。 通过使用渠道工厂,您可以调用服务的任何端点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。