我有两个WCF RESTful服务 - "通用"服务是公共的,没有安全性; "admin"服务我打算使用SSL进行基本身份验证.这是我的服务器端web.config:
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="general" maxReceivedMessageSize="2147483647">
<readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" />
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
<binding name="admin" maxReceivedMessageSize="2147483647">
<readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" />
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="MyNamespace.AppServices.GeneralService">
<endpoint address="" binding="webHttpBinding" contract="MyNamespace.Contracts.IGeneralService" behaviorConfiguration="web" bindingConfiguration="general" />
</service>
<service name="MyNamespace.AppServices.AdminService">
<endpoint address="" binding="webHttpBinding" contract="MyNamespace.Contracts.IAdminService" behaviorConfiguration="web" bindingConfiguration="admin" />
</service>
</services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
在客户端,我目前的代码如下所示:
private static …Run Code Online (Sandbox Code Playgroud) 我目前在SERVER-1上运行TFS 2010 Server.在我的客户端(MY-CLIENT)上,我运行了VS2010并且有一个工作空间将SERVER-1与\ MY-CLIENT\Development相关联.一切都很好.
我正在玩在SERVER-2上设置不同的TFS实例.在我的客户端上,我删除了原始的SERVER-1工作区并创建了一个新的工作区,将SERVER-2与\ MY-CLIENT\Development相关联.一切都很好.
在SERVER-2上完成TFS实验后,我重新对机器进行了成像(删除了SERVER-2上的TFS服务器).
然后我回到我的客户端计算机,重新连接到SERVER-1上的TFS并尝试将源代码控制重新映射到我的Development文件夹.但是,我现在收到错误" 路径\ MY-CLIENT\Development已映射到工作区MY-CLIENT; SERVER-2\Steve." 现在我有一个问题.
因此,我从中收集到,在重新映像机器之前,我应该先删除SERVER-2工作区.不幸的是,我没有这样做.
在一些论坛中,我意识到我可以使用命令行工具来删除它:
tf workspace /delete MY-CLIENT;SERVER-2\Steve
Run Code Online (Sandbox Code Playgroud)
然而,当我运行它,我得到一个消息,表明" 团队基础服务不能从服务器的http:// SERVER-2:8080/TFS /发展. "
那么问题是,如何强制删除客户端上的SERVER-2工作区,以便重新创建旧的SERVER-1工作区?
我正在尝试使用Fiddler调试(RESTful)WCF应用程序.我通过VS IDE运行我的项目 - 它在ASP.NET开发服务器即Cassini中启动我的应用程序.然后我启动Fiddler并在Request Builder选项卡中输入以下内容:" http:// localhost:1066/GeneralService/sections/summary ",使用GET作为http方法.
Fiddler回复"[Fiddler]连接到localhost失败.
例外文本:无法建立连接,因为目标机器主动拒绝它:: 1:1066"
有没有办法让我调试在Cassini上运行的应用程序?
谢谢,史蒂夫
我有一个WCF服务,使用它来公开端点webHttpBinding,并由WPF和ASP.NET应用程序使用.一切都很好.
我现在正试图从Windows Phone(WP7)中使用该服务.但是,由于.NET Framework还没有完全赶上WP7,因此System.ServiceModel.Web命名空间不可用,结果是webHttpBinding在WP7中不起作用.
现在,在我的服务上,如果我将其切换webHttpBinding为a basicHttpBinding,则手机应用程序可以运行.
我不想重写我的WPF和ASP.NET应用程序来使用basicHttpBinding它.
据我所知,WCF能够支持多个绑定,我试图配置和运行服务,从而可以显示端点都webHttpBinding和basicHttpBinding.该服务似乎启动良好.但是,WPF和ASP.NET应用程序无法访问它.当我尝试在WP7应用程序中创建服务引用时,我收到以下消息:
绑定实例已与侦听URI"http:// localhost:1726/GeneralService.svc"关联.如果两个端点想要共享相同的ListenUri,则它们还必须共享相同的绑定对象实例.两个冲突的端点要么在AddServiceEndpoint()调用中,在配置文件中指定,要么在AddServiceEndpoint()和config的组合中指定.
一位同事和我都打得四处多种变化的baseAddress,address以及listenUri没有任何的运气属性.我们现在正处于试验和错误的阶段,这并不是非常有效.
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<basicHttpBinding>
<binding name="generalBasic" />
</basicHttpBinding>
<webHttpBinding>
<binding name="general" maxReceivedMessageSize="2147483647">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="MyProject.GeneralService"> …Run Code Online (Sandbox Code Playgroud) 我有F#类库程序集,它包含两个函数:
let add a b = a + b
Run Code Online (Sandbox Code Playgroud)
和
let rec aggregateList list init (op:int -> int -> int) =
match list with
|[] -> init
|head::tail ->
let rest = aggregateList tail init op
op rest head
Run Code Online (Sandbox Code Playgroud)
我有一个C#控制台应用程序,它引用了F#库并尝试执行以下操作:
FSharpList<int> l = new FSharpList<int>(1, new FSharpList<int>(2, FSharpList<int>.Empty));
int result = myFsLibrary.aggregateList(l, 0, myFsLibrary.add);
Run Code Online (Sandbox Code Playgroud)
但是,编译器抱怨[myFsLibrary.add]无法从'方法组'转换为 FSharpFunc<int, FSharpFunc<int, int>>
我有一个WCF服务,它公开了一个方法,该方法返回一个包含Image属性的对象数组(参见下面的代码).在同一个解决方案中,我有一个类库项目,它有一个对我的WCF项目的服务引用.在类库中,当我尝试"更新服务引用"时,我的代理类变得不可用.当我从我的类中删除"Graphic"属性时,我没有任何困难更新类库中的服务引用,我的代码都编译并运行正常.我把"Graphic"属性重新放入,代理类再次变得不可用.更奇怪的是,服务引用所暴露的唯一类是"Image".
我在这里俯瞰什么?
[Serializable]
public class PhotoDTO
{
public Guid Id { get; set; }
public Image Graphic { get; set; }
}
[ServiceContract]
public interface IGeneralService
{
[OperationContract]
PhotoDTO[] GetPhotos(Guid subsectionId);
}
Run Code Online (Sandbox Code Playgroud)