Tag: web services

WCF服务,Windows身份validation

我们编写了一个部署在IIS上的WCF服务。 我们选择了集成Windows身份validation 在这种情况下不能使用服务,但如果我们可以将IIS虚拟目录的身份validation方法设置为WCF服务的“匿名”,则错误将消失。 但我们的WCF服务不接受“匿名”。 我们必须使用集成Windows身份validation来validation客户端。 任何人都知道如何解决这个问题? 提前致谢, 阿希什

用于WCF服务的VS2003 Web参考具有额外的“IdSpecified”参数

我正在使用VSTS 2008 + .Net 3.5 + C#开发WCF服务,当我还使用VSTS 2008开发客户端(使用添加服务引用function自动生成客户端Web服务代理代码)时,它工作正常。 我开发的WCF使用basicHttpBinding。 我遇到的问题是,当我使用Visual Studio.Net(Visual Studio 2003)生成客户端Web服务代理代码时,还有一个名为IdSpecified(bool类型)的OperationContract方法的附加输入参数。 我已经测试过,当IdSpecified指定为true时,Id参数的值将正确传递给WCF服务器端,但是当我指定IdSpecified为false时,无论我指定给Id参数的值是什么,在WCF服务器端,Id都将是总是0.我也尝试输入参数类型,如字符串,客户端没有这样的附加输入参数。 我的问题是为什么还有一个额外的参数? 它的含义是什么,是否可以避免生成这样的附加参数? 这是Visual Studio.Net自动生成的客户端Web服务代理代码, public StudentInfo Poll(int Id, [System.Xml.Serialization.XmlIgnoreAttribute()] bool IdSpecified) 这是我的VSTS 2008 WCF服务器端代码, [OperationContract] StudentInfo Poll(int Id); 编辑1:这是客户端自动生成的关于Poll方法的代码的一部分。 [return: System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] public StudentInfo Poll(int Id, [System.Xml.Serialization.XmlIgnoreAttribute()] bool IdSpecified) { object[] results = this.Invoke(“Poll”, new object[] { Id, IdSpecified}); return ((StudentInfo)(results[0])); }

在.NET中的Web服务中写入单个文件的问题

我在.net 2.0,C#中创建了一个web服务。 每当Web服务客户端调用不同的方法时,我都需要将一些信息记录到文件中。 当一个用户进程正在写入文件而另一个进程尝试写入该文件时,就会出现问题。 我收到以下错误: 该进程无法访问该文件,因为该文件正由另一个进程使用。 我试图在C#中实现并且失败的解决方案如下。 实现包含写入文件的代码的单例类。 使用lock语句来包装写入文件的代码。 我也试过使用开源记录器log4net,但它也不是一个完美的解决方案。 我知道记录到系统事件记录器,但我没有这个选择。 我想知道这个问题是否存在完美而完整的解决方案?

c#执行一个字符串作为代码

这是我想要做的,我知道它可以用perl,php,python和java,但我正在使用c# 我该怎么做: public void amethod(string functionName) { AVeryLargeWebServiceWithLotsOfMethodsToCall.getFunctionName(); } 我想将functionName传递给方法,我希望它如上所述执行。 怎么做到这一点? 我需要ANTLR或任何其他工具吗? 谢谢。

序列化assembly。 是否需要?

我有一个.net 2.0 c#ClickOnce应用程序,它通过Web服务连接到它的数据。 我被告知可能加速应用程序的一种方法是事先生成序列化程序集。 我在这方面有几个问题。 是否生成序列化程序集的默认设置是Auto。 VS2005使用什么标准来决定是否生成序列化程序集? 看起来它不会在Debug配置下生成,但它在Release配置下生成,但我无法确定并且无法在任何地方获取信息。 序列化程序集实际上是否改善了应用程序的启动? 具体来说它有什么改进? 我真的需要序列化程序集吗?

有没有办法从ASP.NET WebMethod中获取原始SOAP请求?

例: public class Service1 : System.Web.Services.WebService { [WebMethod] public int Add(int x, int y) { string request = getRawSOAPRequest();//How could you implement this part? //.. do something with complete soap request int sum = x + y; return sum; } }

inheritance的属性不会出现在asmx文件的soap示例中

我有两个类,WebServiceRequest和OrderRequest。 每个类都有属性。 OrderRequestinheritance自WebServiceRequest – 如下所示: public class WebServiceRequest { private string mAuthenticationToken; public string AuthenticationToken { get { return mAuthenticationToken; } set { mAuthenticationToken = value; } } … } public class OrderRequest : WebServiceRequest { private string mVendorId; public string VendorId { get { return mVendorId; } set { mVendorId = value; } } […]

使用HttpWebRequest类

我实例化HttpWebRequest对象: HttpWebRequest httpWebRequest = WebRequest.Create(“http://game.stop.com/webservice/services/gameup”) as HttpWebRequest; 当我将数据“发布”到此服务时,服务如何知道将数据提交到哪个Web方法? 我没有这个Web服务的代码,我所知道的是它是用Java编写的。

在运行时使用和调用SOAP WebServices – 来自WSDL文件的动态Web服务客户端

需求: 客户在运行时提供SOAP Web服务的WSDL,即从文件共享位置选择WSDL文件。 使用WSDL,并在UI上调用Customer选择的Method并处理响应。 我无法使用MetadataExchangeClient,因为不会托管WSDL。 执行: var serviceDescription = ServiceDescription.Read(@”C:\Contacts.WSDL”); var metadataSection = new MetadataSection { Dialect = MetadataSection.ServiceDescriptionDialect, Identifier = serviceDescription.TargetNamespace, Metadata = serviceDescription }; var metadataSections = new List {metadataSection}; var metadatSet = new MetadataSet(metadataSections); var wsdlImporter = new WsdlImporter(metadatSet); var services = wsdlImporter.ImportAllEndpoints(); 路障: 上面的代码根本无法提取服务端点。 所以,我不得不手动创建一个服务端点。 我无法在步骤中列出上述WSDL中包含的所有方法及其关联的输入/输出(将在下面的变量operationName和operationParameters中使用) object retVal = instance.GetType().GetMethod(operationName) .Invoke(instance, […]

如何使用WebService将文件复制到SharePoint?

我正在编写一个winforms c#2.0应用程序,需要将XML文件放入SharePoint上的文档库中。 我想使用WebService而不是使用对象模型(这里没有sharepoint.dll引用) 我目前正在使用http://webserver/site/_vti_bin/copy.asmx webservice。 这是一些代码: byte[] xmlByteArray; using (MemoryStream memoryStream = new MemoryStream()) { xmlDocument.Save(memoryStream); xmlBytes = memoryStream.ToArray(); } string[] destinationUrlArray = new string[] {“http://webserver/site/Doclib/UploadedDocument.xml”}; FieldInformation fieldInfo = new FieldInformation(); FieldInformation[] fields = { fieldInfo }; CopyResult[] resultsArray; using (Copy copyService = new Copy()) { copyService.Credentials = CredentialCache.DefaultCredentials; copyService.Url = “http://webserver/site/_vti_bin/copy.asmx”; copyService.Timeout = 600000; […]