我正在使用WatiN(.Net中的Web应用程序测试)在Dynamics CRM 4.0网站上进行集成测试.CRM使用大量弹出窗口 - 例如,单击列表中的联系人会打开一个带有联系人详细信息的新浏览器窗口.
我想测试一下:
所以我需要抓住弹出的窗口.怎么样?
谢谢.
我有一个ActiveX控件,并且已经使用测试证书对其进行了签名,但每个工作正常但问题是我的Internet Explorer显示了一条丑陋的消息
该网站希望运行以下附加组件:"控制名称不可用"中的"不可用",如果您信任该网站和加载项并希望允许其运行,请单击此处....
为什么控件名称不可用?我在C#中创建了这个ActiveX控件,并在我的assemblyInfo.cs中添加了ComVisible属性,这里是代码
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security.Permissions;
using System.Runtime.InteropServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: System.Runtime.InteropServices.ComVisible(true)]
[assembly: AssemblyTitle("My ActiveX Control")]
[assembly: AssemblyDescription("My ActiveX Control Description")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CompanyXYZ")]
[assembly: AssemblyProduct("My ActiveX Control")]
[assembly: AssemblyCopyright("2009")]
[assembly: AssemblyTrademark("CompanyXYZ")]
[assembly: AssemblyCulture("")]
//
// Version information for an assembly consists of the following four values: …Run Code Online (Sandbox Code Playgroud) 我有一个客户端 - 服务器设置.客户端创建代理以与服务器通信.当通信协议是HTTPS时,代理通过以下行侦听SSL证书验证事件:
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
Run Code Online (Sandbox Code Playgroud)
ValidateRemoteCertificate方法处理证书异常.
在客户端中,用户可以选择3个安全级别中的一个:低,中和高.在低级别,ValidateRemoteCertificate方法忽略任何错误并始终返回true.在中级,ValidateRemoteCertificate方法触发一个事件,通知客户端该问题.在此阶段,向用户显示消息,通知他证书存在问题,并允许用户选择是继续并接受与服务器的连接还是拒绝.在High级别,ValidateRemoteCertificate方法拒绝任何错误的连接.
到现在为止还挺好.
方案如下:
我试图实现的行为是,当执行测试时,ServerCertificateValidationCallback将在客户端启动并且ValidateRemoteCertificate发挥作用后表现为它是第一次调用它.
我试图找到任何方法来清除ServicePointManager中的任何委托/事件,但我找不到任何.
这里有缓存可以清除吗?我希望这个场景足够清晰.
我是消息传递的新手,目前正在调查使用RabbitMQ作为我们系统架构的一部分,以提供不同服务之间的消息传递.我有一个基本的RabbitMQ示例工作,它可以通过总线传输基本文本消息.看起来EasyNetQ可能只是使用RabbitMQ的一些复杂性,尽管我在使用它时遇到了一些麻烦.
我想发送一个由以下类表示的更高级的消息,而不仅仅是一个字符串:
public class Message
{
public string Text { get; set; }
public int RandomNumber { get; set; }
public DateTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我试图通过将其发布到队列来发送它,然后让订阅者从队列中取出它.我的代码如下:
出版者
using (var bus = RabbitHutch.CreateBus("host=localhost"))
{
var message = new Message() { Text = "Hello World", RandomNumber = new Random().Next(1,100), Date = DateTime.Now };
bus.Publish<Message>(message);
}
Run Code Online (Sandbox Code Playgroud)
接收器
using (var bus = RabbitHutch.CreateBus("host=localhost"))
{
bus.Subscribe<Message>("test", m => Console.WriteLine(string.Format("Text: {0}, RandomNumber: {1}, Date: {2}", m.Text, m.RandomNumber, …Run Code Online (Sandbox Code Playgroud) 我们基于Dynamics CRM 4.0中复杂的实体关系对复杂系统进行建模
由于开发的性质,我们必须实现存储库样式模式,并且具有许多彼此相关的不同提供者.
我真正想要做的是描述他们的构造函数和各种懒惰的getter,但我想在顶层建模.
问题当然是Scope - 如果我将构造函数包装在using块中,它就不可用于其他任何东西.如果我扩展using块以便引用我正在分析的对象的所有内容都进入范围,那么探查器不仅仅是对构造函数进行分析 - 它是其他所有内容的计时.
同样,有一定程度的嵌套,如果我正确嵌套使用,那么代码就变得不可读了.
我已经看过Profiler.Inline,但这不符合我的目的.
我真正想做的是:
ref = Profiler.StartStep("Creating CRM Model");
//Do horrible CRM work
var myNewHorribleObject = CRM.ModelHorribleStuff(...);
Profiler.StopStep(ref);
ref = Profiler.StartStep("How long does it take to get X");
var data = Repository.GetSomething(myNewHorribleObject.SomeId);
Profiler.StopStep(ref);
ref = Profiler.StartStep("How long does it take to get Y");
var newData = Repository.GetSomethingElse(myNewHorribleObject.ContextId);
Profiler.StopStep(ref);
Run Code Online (Sandbox Code Playgroud)
那有意义吗 ?希望我在Mini Profiler中忽略了一些东西,但我欢迎任何建议!
我想稍微改造代码,但是没有时间,虽然它看起来很奇怪,但实际上我们有很好的圈复杂度.
我有一个正则表达式,以逐字C#字符串类型定义,如下所示:
private static string importFileRegex = @"^{0}(\d{4})[W|S]\.(csv|cur)";
Run Code Online (Sandbox Code Playgroud)
在正则表达式行开始之后的前3个字母(^)可以是字母字符的许多可能组合之一.
我想使用上面的方法做一个优雅的String.Format,在开始时放置我的3个字母组合选择并在我的匹配算法中使用它,如下所示:
string regex = String.Format(importFileRegex, "ABC");
Run Code Online (Sandbox Code Playgroud)
哪个会给我一个正则表达式 ^ABC(\d{4})[W|S]\.(csv|cur)
问题是,当我执行String.Format时,因为我在字符串中有其他花括号(例如\d{4})String.Format寻找要放在这里的东西,找不到它并给我一个错误:
System.FormatException : Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
Run Code Online (Sandbox Code Playgroud)
任何人都知道,如果没有拆分弦,我可以逃避其他花括号或东西,以避免上述错误?
我有一个下面显示的抽象类,它被所有其他控制器继承.是否可以测试这种方法?顺便说一下,我正在尝试使用MOQ,但没有运气.如果你能帮助我,我将不胜感激:
public abstract class ApplicationController : Controller
{
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
//do some stuff here
}
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找将返回当前登录的crm用户选择的语言的JavaScript代码.还有其他方法,而不是从使用过的互联网浏览器中读取语言设置.
我一直在尝试使用"私钥"作为身份验证方法创建一个指向Github存储库的VCS Root大约三个小时.

但当我点击"测试连接"按钮时,我收到此错误:
列表远程引用失败:com.jcraft.jsch.JSchException:无效的私钥:C:\ Users\Administrator.ssh\EC2BuildServerPrivateKey.ppk
私钥肯定存在,我甚至使用GIT扩展使用相同的密钥克隆了存储库.
当然我不是第一个尝试使用github作为VCS root的人!?我正在使用Team City 7.1.3!
任何人都可以请帮助一些事情的建议,以验证?
也许我应该使用其他一些"身份验证方法",因为这个不起作用?
我已经下载了CRM 2011 SDK并遵循了使用C#quickstart项目启动和运行的说明.当我尝试构建它时,VS抱怨对上面的程序集的引用,它似乎不在我的PC上(Windows 8),当然不是根据项目文件中的引用预期的.当我尝试安装Microsoft Identity Model时,它拒绝了,表明它已经通过与.NET framework 4.5集成而安装.
我不知道下一步该往哪 - 有人可以帮忙吗?
c# ×4
crm ×2
dynamics-crm ×2
.net ×1
activex ×1
asp.net ×1
certificate ×1
easynetq ×1
formatting ×1
github ×1
javascript ×1
rabbitmq ×1
reference ×1
regex ×1
ssl ×1
teamcity ×1
teamcity-7.0 ×1
watin ×1