我有一个WCF服务,其中有多个Web方法.我希望能够拦截所有方法的请求并查看IP地址.我宁愿不把逻辑放到每个被调用的web方法顶部的方法调用中,是否有办法从一个地方拦截对这些方法的所有调用?
如果它是一个页面我会写一个基页对象,但我不确定是否在wcf调用上引发了事件?
我做了一些研究.我想使用moq并将其传递给MVC控制器,以便允许它在会话中设置一些值.我写了一些代码,看看它是否有可能"打开"一个没有setter的属性.只是不知道它是否可能......
以下代码是我试图设置一个没有setter的属性的尝试!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Moq;
namespace TestMoq
{
class Program
{
static void Main(string[] args)
{
var mock = new Mock<TestClass>();
mock.SetupProperty(f => f.VarWithNoSetter);
mock.Object.VarWithNoSetter = "Set";
Console.WriteLine(mock.Object.VarWithNoSetter);
Console.ReadLine();
}
}
public class TestClass
{
private string _varWithNoSetter;
public string VarWithNoSetter
{
get { return _varWithNoSetter; }
}
public TestClass()
{
}
}
}
Run Code Online (Sandbox Code Playgroud) 我可以在REST(json)wcf上看到SOAP WCF的ONLY参数是这样的事实:一旦我的服务被创建,我可以在visual studio中添加一个引用,我可以为我和一个客户端类添加一个强类型类的负载可以打电话给我所有的网络方法.据我所知,它甚至设置了web.config.
但是当我公开REST(json)服务时,我仍然得到一个WSDL.所以我想知道还有办法自动构建我的引用吗?
周末我被给了卡塔工作.在开始之前我真的只想收集一些想法.我不是在寻找解决方案,只是关于最佳方法/实践的一些想法.
从我的谈话中我似乎需要使用BDD - > ATDD(与小黄瓜场景相关) - > TDD方法.我只是想找出最好的方法.
我目前的想法是
1)创建一个specflow项目并将用户故事提炼成一个小黄瓜.
2)使用GWT语法在小黄瓜(场景)中创建相关的验收测试,从而在[binding]类中生成我的ATTD样式测试(右键单击'generate').
3)使小黄瓜ATDD测试通过.
我遇到的难题是直接链接到我的小黄瓜文件中的ATTD测试的测试并没有给我足够低水平的测试.
那我该怎么办?我是否编写了高级ATDD测试,然后在将它们传递之前,我是否深入挖掘并编写纯TDD测试来设计我的低级对象?
是的,我还没有弄清楚如何以完全BDD的方式工作(纯粹的风格),所以只是想知道我是如何挖掘的.我很欣赏你应该逐步完成并完成一个测试并通过,但我觉得我需要从高级ATDD测试开始然后更深入,所以更高级别的测试不会工作,直到我使我的低级代码工作,但要遵循TDD我需要测试那个低级代码,所以我已经打破了1单元测试的原则然后通过然后重构.....
希望有人明白如何在没有实际操作的情况下告诉我如何处理这个问题.但是这里提供给我的问题是......(我很欣赏,如果测试人员看到这一点,他们可能会因为我在这里问我而失败,但更重要的是我学到而不是得到这份工作).是的我知道我是MAD :-)
我也很想知道我是否应该为我的纯TDD测试设计一个单独的项目.什么是最好的项目结构?我正在考虑1个specflow项目和一个.test项目以及一个用于运行时的类库和控制台应用程序.
PS帮助我的人对我有所帮助.拥抱或慈善捐赠.或者只是这里的+1我猜你真正想要的是: - /
剪刀石头布
User Story Front
+--------------------------------------------------+
| |
| Title: Waste an Hour Having Fun |
| |
| As a frequent games player, |
| I'd like to play rock, paper, scissors |
| so that I can spend an hour of my day having fun |
| |
| Acceptance Criteria |
| - Can I play Player …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序正在调用twitter,我需要检查流量,以便我可以了解有关oAuth的更多信息.
当我双击ssl流量时,我得到一个黄色框,提示我去更改选项(顺便说一下,我通过代理运行我的应用程序).

在阅读了关于在我的机器上使用fiddler创建的证书后,我点击了链接,让fiddler按照这些说明在我的机器上安装证书......
http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddlerforwin8
然而,而不是发生这种情况......

我收到此错误消息...
"无法配置Windows以信任Fiddler Root证书"这里是一个屏幕截图....

当我按照建议检查日志时(虽然因为我认为日志与每个单独的请求有关而令人困惑),无论如何我看到了......

我甚至尝试手动安装证书也没有用.希望有人能帮助我使用Windows 8进行fiddler/ssl解密!:-)
更新:回答他在下面的回答中提出的Erics问题......
嗨Eric感谢您的回复.
1)弹出一个说"证书信任"的框,这是我拍摄的上面的屏幕截图.这是告诉我检查日志的盒子.
2)我有一个帐户,当我检查我的用户时,它说我是我的用户名下的管理员.
3)我试图以管理员身份运行Fiddler无济于事.
我还尝试将证书手动拖放到certmgr.msc工具中,然后它会出现一个带有一条直线的圆形光标.听起来像权限,但我只是不明白为什么,因为我有完整的一切......
我想在函数构造函数(类)的原型中添加一个常量,但是为了未定义,为什么会回来?
function myClass(){
}
$(document).ready(function(){
myClass.prototype.age = 22;
window.alert(myClass.age);
});
Run Code Online (Sandbox Code Playgroud) 我创建了一个服务,然后我看到一个页面说:
您已创建了一项服务.
要测试此服务,您需要创建一个客户端并使用它来调用该服务.您可以使用命令行中的svcutil.exe工具执行此操作,语法如下:
但是如何判断它是SOAP还是REST服务呢?我怎么从wsdl等告诉我?
服务配置:
<services>
<service name="VLSContentService"
behaviorConfiguration="VLSContentServiceBehaviour" >
<endpoint name="rest"
address=""
behaviorConfiguration="VLSContentServiceEndpointBehaviour"
binding="webHttpBinding"
contract="IVLSContentServiceREST" />
<endpoint name="soap"
address="soap"
binding="basicHttpBinding"
contract="IVLSContentServiceREST"/>
</service>
</services>
Run Code Online (Sandbox Code Playgroud)
更新:
嗨马克,
我的配置是:
<services>
<service behaviorConfiguration="VLSContentServiceBehaviour" name="VLSContentService">
<endpoint name="rest" address="" behaviorConfiguration="VLSContentServiceEndpointBehaviour" binding="webHttpBinding" contract="IVLSContentServiceREST" />
<endpoint name="soap" address="soap" binding="basicHttpBinding" contract="IVLSContentServiceREST"/>
</service>
</services>
Run Code Online (Sandbox Code Playgroud)
所以基本上我浏览到.svc文件,我看到了一个wsdl的链接.但是,我如何知道SOAP或REST端点的那些.我是否正确配置了它?
谢谢
更新:17:49(英国时间)
<system.serviceModel>
<!---Add the service-->
<services>
<service behaviorConfiguration="VLSContentServiceBehaviour" name="VLSContentService">
<endpoint name="rest"
address=""
behaviorConfiguration="VLSContentServiceEndpointBehaviour"
binding="webHttpBinding"
contract="IVLSContentServiceREST" />
</service>
</services>
<!---Add the behaviours-->
<behaviors>
<serviceBehaviors>
<behavior name="VLSContentServiceBehaviour">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors> …Run Code Online (Sandbox Code Playgroud) 我写了方法合同:
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "TestEchoWithTemplate/{message}", BodyStyle = WebMessageBodyStyle.Bare)]
string TestEchoWithTemplate(string s);
Run Code Online (Sandbox Code Playgroud)
和实施方法:
public string TestEchoWithTemplate(string s)
{
return "You said " + s;
}
Run Code Online (Sandbox Code Playgroud)
当我浏览到Url时:
HTTP://本地主机:52587/VLSContentService.svc/REST/TestEchoWithTemplate /的HelloWorld
我收到以下错误:
合同'IVLSContentService'中的'TestEchoWithTemplate'操作有一个UriTemplate,它需要一个名为'MESSAGE'的参数,但操作上没有带该名称的输入参数.
以下产生相同的错误:
HTTP://本地主机:52587/VLSContentService.svc/REST/TestEchoWithTemplate/MESSAGE =的HelloWorld 的http://本地主机:52587/VLSContentService.svc/REST/TestEchoWithTemplate消息=的HelloWorld
我究竟做错了什么?
我看过语法:
ul#nav li a
{
}
Run Code Online (Sandbox Code Playgroud)
我不确定它意味着什么,它是否与说:
#nav ul li a
Run Code Online (Sandbox Code Playgroud)
?
我想我真的不明白在没有空格的id选择器之前有一个元素类型是什么意思...
我有一个用户控件,我想将一些东西“注入”到母版页的头部。我尝试使用以下方法(母版页和用户控制 mmarkup 片段)...
母版页:
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
Run Code Online (Sandbox Code Playgroud)
用户控制:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link type="text/css" rel="stylesheet" href="/Shared/Css/Navigation.css" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
但这给出了错误:
内容控件必须是内容页或引用母版页的嵌套母版页中的顶级控件。
那么如何在运行时将控件中的内容放入母版页中呢?