我正试图在我当前的项目中解决一个Web服务客户端问题.我不确定服务服务器的平台(很可能是LAMP).我相信他们身边有一个错误,因为我已经消除了我的客户的潜在问题.客户端是从服务WSDL自动生成的标准ASMX类型Web引用代理.
我需要得到的是RAW SOAP消息(请求和响应)
最好的方法是什么?
是否可以在Visual Studio 2012中为我的项目添加Web引用?在Visual Studio 2010中,可以单击"添加服务引用"对话框中的"高级"按钮,因为它在此页面上编写:
在Visual Studio 2010中添加Web引用
但在Visual Studio 2012中,"服务引用设置"中没有"兼容性"部分,并且此对话框中没有"添加Web引用"按钮.我想使用SOAP Web服务,但只有当我将其添加为Web引用时才能正常工作(在.NET Framework 2.0兼容模式下.如果我像往常一样添加它的服务引用,我在使用此服务时会遇到异常).
如何将旧式Web引用添加到我的项目中?
或者如何使用我的Web服务以及新的服务引用?
谢谢
我能够找到几个类似的问题并回答,但没有一个答案或确切条件适用于我的情况.
如果我没有参考mixed-mode DLL,这很好.如果我引用混合模式DLL,我会收到此错误(xxx只是一个占位符):
SGEN:错误:尝试加载格式不正确的程序集:C:\ code\xxx\trunk\xxx\common\xxx\build\winx64\lib\xxx.dll.
这是发出的命令:
C:\ Program Files\Microsoft SDKs\Windows\v6.0A\bin\sgen.exe /assembly:C:\code\xxx\trunk\xxx\xxx\obj\x64\Release\xxx.dll/proxytypes/reference: ..\common\xxx\build\winx64\lib\xxx.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Configuration.Install.dll/reference:"C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll"/ reference:C:\ Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll/reference:C:\ Windows\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll /reference:C:\Windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll/reference:"C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\v3.0\System.Runtime.Serialization.dll"/ reference:"C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\v3.0\System.ServiceModel.dll"/ reference:"C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll"/ reference:C:\ Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll
有任何想法吗?
例如,在.NET 2.0项目上向ASMX服务添加WebService引用时,
var objService = new NameSpace.groupservices();
Run Code Online (Sandbox Code Playgroud)
那里存在,
objService.CookieContainer = new System.Net.CookieContainer();
Run Code Online (Sandbox Code Playgroud)
例如,在.NET 4.0项目上将ServiceReference添加到ASMX服务时,
var objService = new NameSpace.groupservicesSoapClient();
Run Code Online (Sandbox Code Playgroud)
objService没有任何CookieContainer属性
有人可以指导在哪里找到该物业?
请问某人可以准确解释Visual Studio中Web引用的URL行为(静态或动态)属性.
我相信它会影响存储Web服务的URl的位置,但我没有清楚的理解.
我正在尝试向客户端的Web服务发出请求(我不知道客户端的底层平台).我使用"添加Web引用"在Visual Studio 2010中使用了客户端的WSDL并生成了我的代理类(称为"ContactService").
我现在需要在我的服务请求中添加如下所示的授权标头.
Header=Authorization & Value=Basic 12345678901234567890
Run Code Online (Sandbox Code Playgroud)
(上面的"123456 ..."值只是占位符)
ContactService service = new ContactService();
//not sure if this is the right way - it's not working
WebClient client = new WebClient();
client.Headers.Add("Authorization", "Basic 12345678901234567890");
service.Credentials = client.Credentials;
int contactKey = null;
try
{
contactKey = service.CreateContact("ABC", emailAddress, firstName, lastName, null);
}
Run Code Online (Sandbox Code Playgroud)
将授权标头添加到服务请求的正确方法是什么?
谢谢!
我有两个Web项目.
第一次创建大约2-3周前和今天第二次.
我想将Web Reference添加到第二个Web项目中.
第一个旧的Project Solution View
第二个新的Project Solution View
在新的项目中,我找不到如何添加Web Reference.我可以添加服务参考,但我不需要它.
从这里我可以添加服务参考
但我无法添加Web引用就像它在旧项目中一样
我应该从哪里添加Web Reference?有关Web引用的更改吗?
web-reference .net-core asp.net-core visual-studio-2017 asp.net-core-1.1
我正在做一些解决方案清理,并希望将一些Web引用从一个项目移动到另一个项目.VS2010不允许我将它们从一个项目拖放到另一个项目.移动它们最简单的方法是什么?如果重要的是这些是旧式的asmx Web服务,而不是WCF服务.
我的理解是,.NET并不真正为DLL执行配置文件 - 只有主要的可执行文件或Web应用程序获取配置文件,并且可执行文件/ Web应用程序引用的所有DLL都从中读取.
但是在VS2008中,如果将Web引用添加到类库(DLL)项目,它会将Settings.Settings文件和app.config文件添加到项目中.它们包含Web引用的主URL.
那么这些文件是为了什么?DLL无法独立读取它们,对吗?
编辑:在app.config和Settings.Settings的内容似乎有所作为,但:改变(例如)Web引用URL中对自己的DLL项目的app.config文件没有什么区别,但如果编辑网址在app.config中然后打开Settings.Settings文件,您在app.config中所做的更改将被复制到Settings.Settings中.然后,DLL在运行时获取新值.它是怎么做到的?
编辑:我的一部分困惑是因为我不太清楚Settings.Settings和app.config之间的区别以及它们之间的关系,所以也许人们也可以帮助解决这个问题.
我正在尝试将WSSE SOAP Header添加到我的服务调用中,但大多数示例都集中在WCF上.我没有使用WCF.我添加了一个Web引用(WSDL).
我尝试了各种方法但没有成功,比如 - 覆盖GetWebRequest方法:
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
string user = "username";
string pwd = "password";
System.Net.WebRequest request = base.GetWebRequest(uri);
string auth = string.Format("Basic {0}", Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(string.Format("{0}:{1}", user, pwd))));
request.PreAuthenticate = true;
request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
request.Headers.Add(HttpRequestHeader.Authorization, auth);
return request;
}
Run Code Online (Sandbox Code Playgroud)
WSSE安全标题应类似于以下内容:
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>username</Username>
<Password>password</Password>
</UsernameToken>
</Security>
Run Code Online (Sandbox Code Playgroud)
提前谢谢了!亲切的问候,
web-reference ×10
soap ×3
.net ×2
asmx ×2
c# ×2
web-services ×2
.net-core ×1
app-config ×1
asp.net ×1
asp.net-core ×1
c#-4.0 ×1
format ×1
mixed-mode ×1
proxy ×1
sgen ×1
web-config ×1