我试图想出这样一个解决方案,用户将输入一个Web服务的URL,它将被测试.
虽然我想要的是URL更改,但我保证服务描述总是相同的(当然wsdl:service标签除了包含soap:地址); 我只是想测试不同的客户,运行相同的服务.
我有一个针对2.0 .NET框架的应用程序.解决方案是使用VS Web服务引用文件夹.通过解决方案的grep显示该URL存在于少数几个文件中.但是,在部署的应用程序中,搜索显示URL仅存在于.config中.那么.disco和.wsdl发生了什么?它们被编译成.exe吗?基本上,我需要更新URL,我需要知道这是否需要新的构建.
谢谢!
我使用WCF服务引用绑定到现有的ASMX Web服务.我有一个方法返回一个包含500k长度的字符串的DataSet对象.
作为标准的"老派"Web引用,调用此方法大约需要2-3秒才能完成.作为WCF服务参考,这需要20多秒才能完成.这对我们的系统现在有影响:(
我已经尝试改变绑定以最大化所有maxReceivedMessageSize和maxBytesPerRead等,但它没有任何区别.
为什么WCF引用速度要慢得多,我该怎么做才能解决这个问题?
当我向项目添加Web引用时,它会提供一个默认命名空间:com.wpdevs.myservice.这是我期望它在应用程序中使用的命名空间.
当我将using语句添加到项目时,我必须添加:
using MyProject.com.wpdevs.myservice;
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法来消除必须在using语句中引用项目名称.我现在正在组合的项目注定要转换为VS项目模板,并且在那里有相当奇怪的参考,甚至有一个每个项目的参考,这不是我想在项目中拥有的东西.
如果我有一个包含50多个Web引用的项目文件,而不是
逐个遍历每个Web引用并右键单击 - >更新,是否有办法让Visual Studio自动执行此操作?
我有一个在IIS中托管的WCF Web服务.这是相同的配置:
当我尝试在我的WinForms客户端中使用此特定服务(当作为服务引用添加时)时,它会抛出此异常:
未提供用户名.在ClientCredentials中指定用户名.
但是当我将服务添加为"Web引用"时,我可以完美地执行所有方法.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpEndpointBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="EMSServiceBehavior"
name="EMSService.EMSCRUD">
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="BasicHttpEndpointBinding"
name="BasicHttpEndpoint" contract="EMSService.IEMSCRUD">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="EMSServiceBehavior">
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment …Run Code Online (Sandbox Code Playgroud) 我试图从app.config获取我的应用程序中的服务价值.我必须将它发送到显示URL的应用程序.我在此应用程序中使用的Web服务也使用它,因此无法将其移动到appSettings.
我想通过c#代码得到这个值' http://192.168.4.22:82/Service.asmx '.
<applicationSettings>
<SDHSServer.Properties.Settings>
<setting name="DOServer_WebReference1_Service" serializeAs="String">
<value>http://192.168.4.22:82/Service.asmx</value>
</setting>
</SDHSServer.Properties.Settings>
</applicationSettings>
Run Code Online (Sandbox Code Playgroud) 我正在努力如何配置网址引用的URL.
情况就是这样.我有:旧的asp.net webservices <----- c#项目编译成dll <-----引用dll的网站(c#项目以前不在那里,但我将所有代码重构为一个单独的项目)
因此,网站代码调用c#项目的代码来获取结果,然后调用Web服务.
在c#项目中添加Web引用时,我输入了webservices的URL位置(http://192.168.10.1/TestServices.asmx?wsdl.然后生成包含webservices的url的app.config文件.
如果我将Web引用设置为静态,则不应使用配置,这是有效的.现在,如果我将web引用设置为动态,则应该使用配置,但由于这是一个正在编译为dll的项目,并且该网站没有app.config,而是我将配置从app.config设置为my web.config appSettings节点,我将URL更改为另一个Web服务(http://192.168.10.2/TestServices.asmx.
在c#项目中添加Web引用时,网站仍然会从Web引用指向的旧URL获取结果,因此看起来在URL Behavious设置为Dynamic时未使用配置设置.
我可能在这里错过了一些微不足道的东西吗?
这是app.config中的内容:
<applicationSettings>
<XXXX.Properties.Settings>
<setting name="XXXX_TestServices_TestServices" serializeAs="String">
<value>http://192.168.10.1/TestServices.asmx</value>
</setting>
</XXXX.Properties.Settings>
</applicationSettings>
Run Code Online (Sandbox Code Playgroud)
这是我放在web.config中的内容:
<appSettings>
<add key="XXXX_TestServices_TestServices" value="http://192.168.10.2/TestServices.asmx" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
所以,现在它总是有趣和信息/教育当在问题的打字和双重检查和搜索相关的问题,你最终自己解决问题..无论如何我发布它的答案,因为我没有找到一个确切的答案通过结合其他2个问题和博客文章.
我现在正在工作的防火墙后面,我正在测试我已部署到我的网站上的东西,而工作代理似乎在某种程度上阻止了它.
基本上我收到的消息是:
由于对象的当前状态,操作无效
我已将其归结为我的代理干扰,但我看不到任何高级设置或任何我可以设置通过我的代理来获取我的服务.
我做了一个快速谷歌,但没有快乐.
有人找到了快速解决方法吗?
问候伙计们,我需要在我的MVC应用程序中引用外部服务.
我正在使用此服务来验证我们的一个客户请求我们使用的身份验证令牌.
我正在将一个较旧的项目移植到MVC.我添加了一个Web引用.
配置生成如下:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ExternalServicesSoap" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myapps.test.com/ExternalServices/ExternalServices.asmx"
binding="basicHttpBinding" bindingConfiguration="ExternalServicesSoap"
contract="AssertionService.ExternalServicesSoap" name="ExternalServicesSoap" />
</client>
Run Code Online (Sandbox Code Playgroud)
在旧的ASP.NET世界中,我可以使用外部服务引用中定义的Assertion对象对我引用的特定服务执行以下操作.
var service = new ExternalServices();
Assertion assertion = service.Validate(Id);
if(assertion.Valid){}
Run Code Online (Sandbox Code Playgroud)
这似乎不是MVC项目中的确切情况.我似乎正在与WCF合作.我不确定我是否在MVC世界中正确接近这一点.
我必须使用的是ExternalServiesSoap接口或ExternalServicesSoapChannel接口.其中没有一个像ASP.Net世界那样返回Assertion对象.它们都具有Validate方法但返回ValidateAssertionResponse.响应对象没有任何有用的属性; 只是一个回应机构.该断言类是仍然可以访问,但它似乎并没有受到任何的接口方法返回. …
web-reference ×10
asmx ×4
c# ×3
wcf ×3
web-services ×3
.net ×2
app-config ×1
interface ×1
namespaces ×1
proxy ×1
vsx ×1
web ×1
web-config ×1
winforms ×1