有没有人知道如何在不使用配置文件的情况下以编程方式公开WCF服务的一个很好的例子?我知道服务对象模型现在使用WCF更丰富,所以我知道它是可能的.我只是没有看到如何这样做的例子.相反,我希望看到没有配置文件的消费也是如此.
在有人要求之前,我有一个非常具体的需要,没有配置文件.我通常不会推荐这样的做法,但正如我所说,在这种情况下有一个非常具体的需要.
我发现Visual Studio WCF测试客户端在快速测试我的WCF服务时非常有用.这是相对于Visual Studio安装目录在此位置找到的测试客户端:
\ Common7\IDE\WcfTestClient.exe
我有一些服务调用需要System.Int32 []类型的参数
我似乎无法弄清楚要为此参数输入什么值,因为我一直收到错误
'[输入的值]'不是此类型的有效值
试图输入值27我尝试了以下,但都失败了
27
{27}
新的System.Int32 [] {27}
任何人都可以帮助如何做到这一点
我正在寻找一个"十大"列表,列出我们应该通过Web服务连接到远程数据库而不是直接连接到数据库的原因.这是现在的内部辩论,我是亲网络服务但却失去了争论.我对WCF/Web服务有基本的把握,没有其他人可以做到.我们可以做任何我们想要的事情,但我们需要坚持我们现在选择的任何东西.
这就是我想出来的.还有吗?
我正在寻找WCF命名管道的最小示例(我期望两个最小的应用程序,服务器和客户端,它们可以通过命名管道进行通信.)
Microsoft有一篇很好的文章" 入门教程",它通过HTTP描述了WCF,我正在寻找类似于WCF和命名管道的东西.
我在互联网上发现了几个帖子,但它们有点"先进".我需要一些最小的,只有强制性的功能,所以我可以添加我的代码并使应用程序正常工作.
如何替换它以使用命名管道?
<endpoint address="http://localhost:8000/ServiceModelSamples/Service/CalculatorService"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator"
contract="ICalculator" name="WSHttpBinding_ICalculator">
<identity>
<userPrincipalName value="OlegPc\Oleg" />
</identity>
</endpoint>
Run Code Online (Sandbox Code Playgroud)
如何替换它以使用命名管道?
// Step 1 of the address configuration procedure: Create a URI to serve as the base address.
Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/Service");
// Step 2 of the hosting procedure: Create ServiceHost
ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), baseAddress);
try
{
// Step 3 of the hosting procedure: Add a service endpoint.
selfHost.AddServiceEndpoint(
typeof(ICalculator),
new WSHttpBinding(),
"CalculatorService");
// Step 4 of the hosting …Run Code Online (Sandbox Code Playgroud) 我正在尝试向WCF服务(我拥有)进行跨域HTTP请求.我已经阅读了几种处理跨域脚本限制的技术.因为我的服务必须同时兼顾GET和POST请求,所以我无法实现一些动态脚本标记,其src是GET请求的URL.由于我可以自由地在服务器上进行更改,因此我开始尝试实施一种解决方法,该方法涉及配置服务器响应,以包含"Access-Control-Allow-Origin"标头和带有OPTIONS请求的"预检"请求.我从这篇文章中得到了一个想法:让CORS正常工作
在服务器端,我的Web方法是在HTTP响应中添加"Access-Control-Allow-Origin:*".我现在可以看到响应包含此标题.我的问题是:我如何"预检"一个请求(OPTIONS)?我正在使用jQuery.getJSON来发出GET请求,但浏览器会立即取消臭名昭着的请求:
Access-Control-Allow-Origin不允许使用origin http:// localhost
有人熟悉这种CORS技术吗?需要在客户端进行哪些更改以预检我的请求?
谢谢!
我最近创建了一个WCF服务(dll)和一个服务主机(exe).我知道我的WCF服务正常工作,因为我能够成功地将服务添加到WcfTestClient.
但是,当我从服务主机(exe)使用我的WCF时,我似乎遇到了一个问题.我可以向我的服务主机(exe)添加对WCF(dll)的引用,并为exe创建必要的组件; 例如服务安装程序,服务主机和app.config,编译然后最后使用InstallUtil安装exe.但是,当我尝试在Microsoft管理控制台中启动该服务时,该服务在启动后立即停止.
所以我开始调查可能导致此问题的原因是从事件查看器中的应用程序日志中得出此错误.
描述:
服务无法启动.System.InvalidOperationException:服务"服务"具有零应用程序(非基础结构)端点.这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在service元素中没有定义端点.
这个错误实际上是在OnStart; 当我执行此调用时,我的exe ServiceHost.Open().我看过很多其他人遇到过这个问题的帖子,但是大多数(如果不是全部的话)声称服务名称或合同; 命名空间和类名,未指定.我在配置文件中检查了这两个条目; 在exe和dll中,它们完美匹配.我已经让办公室里的其他人仔细检查我,以确保我不会在某一点上失明,但当然他们得出了与我相同的结论,即一切看起来都是正确的.对于此时发生的事情,我真的很迷茫.任何人都可以帮我解决这个问题吗?
另一件可能导致这种情况发生的原因是app.config永远不会被读取; 至少不是我认为应该阅读的那个.这可能是问题吗?如果是这样,我该如何解决这个问题.再次,任何帮助将不胜感激.
可能看起来像一个愚蠢的问题,但WCF中的所有内容似乎都比asmx复杂得多,我怎样才能增加svc服务的超时?
这是我到目前为止:
<bindings>
<basicHttpBinding>
<binding name="IncreasedTimeout"
openTimeout="12:00:00"
receiveTimeout="12:00:00" closeTimeout="12:00:00"
sendTimeout="12:00:00">
</binding>
</basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
然后我的端点映射如下:
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration="IncreasedTimeout"
contract="ServiceLibrary.IDownloads">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
Run Code Online (Sandbox Code Playgroud)
我得到的确切错误:
在00:00:59.9990000之后等待回复时,请求通道超时.增加传递给Request的调用的超时值或增加Binding上的SendTimeout值.分配给此操作的时间可能是较长超时的一部分.
在WCF测试客户端中,有一个配置图标,其中包含我的服务的运行时配置:
你可以看到它与我为它设定的值不一样吗?我究竟做错了什么?
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDownloads" 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="">
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud) 我正在设计一个分布式应用程序,它将包含RESTful服务和各种客户端(Silverlight,iOS,Windows Phone 7等).现在我正在确定应该使用哪种技术来实现我的服务,WCF数据服务(OData)或ASP.NET MVC 4推出的新ASP.NET Web API.
我在网上看了几个关于每个的演示文稿,现在我倾向于WCF数据服务,主要是因为URI内置的过滤机制和本机超媒体功能.我能看到的唯一缺点是Atom Pub规范的详细程度与POX相反.
在作出决定之前,我对这两项技术有什么了解吗?为什么有人会选择基于WCF数据服务的ASP.NET Web API?
如果在WCF REST调用中出现问题,例如找不到请求的资源,我如何在我的OperationContract方法中使用HTTP响应代码(例如将其设置为HTTP 404)?
我理解WCF提供的三部分服务/主机/客户端模型的价值.但是它只是我还是看起来像WCF采取了一些非常直接和简单的东西(ASMX模型)并弄得一团糟?
是否有替代使用SvcUtil的命令行回溯产生代理?通过ASMX服务,自动提供测试工具; WCF今天有一个很好的选择吗?
我很欣赏WS*的东西与WCF更紧密地集成,并希望在那里找到WCF的一些回报,但是geeze,否则我很困惑.
此外,WCF可用的书籍状况充其量也很糟糕.Juval Lowy是一位优秀的作者,他写了一本很好的O'Reilly参考书"编程WCF服务",但是对于我现在学习使用WCF它没有那么多(对我而言).Michele Leroux Bustamante的学习WCF是该书的前身(并且组织得更好,但并不多,作为教程).它有很好的位置,但已经过时,相应的网站已经消失.
你有没有很好的WCF学习参考,除了继续谷歌bejebus的东西?
谢谢,rp
wcf ×10
.net ×2
c# ×2
rest ×2
web-services ×2
cors ×1
javascript ×1
jquery ×1
named-pipes ×1
odata ×1
wcf-endpoint ×1