最新的粗体编辑
我使用.net HttpListener类,但我不会在IIS上运行而且不使用ASP.net.该网站描述了使用asp.net实现SSL实际使用的代码,该网站描述了如何设置证书(尽管我不确定它是否仅适用于IIS).
类文档描述了各种类型的身份验证(基本,摘要,Windows等)---它们都没有引用SSL.它确实说如果使用HTTPS,则需要设置服务器证书.这是一个单行的属性设置,并HttpListener找出其余的?
简而言之,我需要知道如何设置证书以及如何修改代码以实现SSL.
虽然在我尝试访问HTTPS时没有出现,但我确实注意到系统事件日志中有错误 - 源是"Schannel",消息的内容是:
尝试访问SSL服务器凭据私钥时发生致命错误.加密模块返回的错误代码是0x80090016.
编辑:
到目前为止采取的步骤
问题
我有一个VS2008应用程序,其中包括一个服务项目(我称之为ServiceProject).我将安装项目(InstallationProject)设置为RemovePreviousVersions.此外,我为InstallationProject 设置了自定义操作,从ServiceProject安装,提交,回滚和卸载主输出.
有时,当我构建新版本的安装程序时,我可以安装而不会出错.通常,当我到达设置服务的位置(在安装程序中输入用户名和密码)时 - 它会因错误"指定的服务已存在"而失败.
我不知道为什么它不一致,虽然我认为可能有某种服务签名,如果服务未经修改,它可以成功删除它,但经过修改后,它无法识别服务.但是,我很少对服务进行修改,所以我怀疑是这样的.
如何在没有此错误的情况下使安装程序成功更新服务? 我的解决方法是手动进入控制面板,卸载以前的应用程序,然后运行安装程序.
我发现这个页面描述了Muenchian方法,但我认为我错误地应用了它.
考虑到这将返回一组年龄:
/doc/class/person/descriptive[(@name='age')]/value
Run Code Online (Sandbox Code Playgroud)
1..2..2..2..3..3..4..7
但我希望每个年龄段的节点集只有一个节点.
1..2..3..4..7
这些中的每一个似乎都返回所有值,而不是唯一值:
/doc/class/person/descriptive[(@name='age')][not(value=preceding-sibling::value)]/value
/doc/class/person/descriptive[(@name='age')]/value[not(value=preceding-sibling::value)]
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我已经构建了一个简单的Web服务,只使用HttpListener来接收和发送请求.有时,服务失败并显示"指定的网络名称不再可用".当我写入HttpListenerResponse的输出缓冲区时,它似乎被抛出.
这是错误:
ListenerCallback()错误:System.Net.HttpResponseStream.Write(Byte []缓冲区,Int32偏移量,Int32大小)中不再提供指定的网络名称
这是代码的罪恶部分.responseString是发送回客户端的数据:
buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = buffer.Length;
output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
Run Code Online (Sandbox Code Playgroud)
它似乎并不总是一个巨大的缓冲区,两个例子是3,816字节和142,619字节,这些错误被抛出约30秒.我不认为我的单个客户端应用程序会重载HTTPlistener; 客户端偶尔会突发发送/接收数据,一次又一次地进行多次交换.
大多数谷歌搜索显示这是一个常见的IT问题,当出现网络问题时,会显示此错误 - 大多数帮助都是针对系统管理员诊断应用程序问题,而不是开发人员追踪错误.我的应用已经在不同的机器,网络等上进行了测试,我不认为这只是一个网络配置问题.
可能是这个问题的原因是什么?
我一直在努力学习如何为现有代码添加测试 - 目前阅读阅读阅读有效使用遗留代码.我一直在尝试在JavaScript中应用一些原则,现在我正在尝试提取一个接口.
在JavaScript中搜索创建接口时,我找不到很多 - 我发现继承的内容似乎有几种不同的方式.(有些人创建自己的基类,以提供有用的方法,使其更容易进行继承,有些使用函数,有些使用原型).
什么是正确的方法?有一个简单的例子用于在JavaScript中提取界面?
我从网站上的这个演示文稿和其他评论中确信我需要学习单元测试.我也意识到有很多关于单元测试的问题.每当我去考虑如何在我正在进行的应用程序中完成它时,我就会感到困惑.它是一个xulrunner应用程序,很多逻辑都是基于事件的 - 当用户点击此处时,会发生此操作.
我经常看到的测试示例是测试类 - 它们实例化一个对象,给它模拟数据,然后检查对象的属性.这对我来说很有意义 - 但是那些非面向对象的作品呢?
这家伙提到基于GUI的单元测试在大多数测试框架中都很难,也许这就是问题所在.上面链接的演示文稿提到每个测试应该只触及一个类,一次一个方法.这似乎排除了我正在努力做的事情.
所以问题是 - 一个单元如何测试程序或基于事件的代码?提供良好文档的链接,或自行解释.
另外,我还面临着一个挑战,即没有找到一个测试框架来设置测试xulrunner应用程序 - 似乎这些工具还没有开发出来.我想这比我理解概念,编写可测试代码,应用单元测试更具外围性.
如果我们采用Basecamp进行错误跟踪,任务跟踪,外部文档,协作和项目管理,我们的团队可能会发现哪些功能缺乏?
我之前使用过免费版本,并认为37Signals制作出色的产品 - 但我想听听你们的缺点是什么.
我正在为我的.net应用程序实现自定义成员资格提供程序.我已经设置了最少数量的字符和非字母数字字符的配置,但它似乎无论如何都要通过密码,即使它们违反了规则.
OnValidatingPassword是一种虚方法.Microsoft的示例不会覆盖该方法.
这个问题解决了同样的问题,但作者放弃了对他的问题的答案,并简单地覆盖了这个功能.这个答案表明,人们不必重写函数来使其工作.
基本功能没有做任何事情吗?当我重写OnValidatePassword,并简单地调用基类时,我的函数被命中,但它永远不会拒绝我太简单的密码.
代码示例(使用自定义CreateUser函数)
protected override void OnValidatingPassword(ValidatePasswordEventArgs e)
{
base.OnValidatingPassword(e);
}
//
// MembershipProvider.CreateUser
//
public MembershipUser CreateUser(string username, string password, string globalIdentifier, string firstName, string lastName,
string birthDate, object providerUserKey, out MembershipCreateStatus status)
{
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true);
OnValidatingPassword(args);
if (args.Cancel)
{
status = MembershipCreateStatus.InvalidPassword;
return null;
}
Run Code Online (Sandbox Code Playgroud) .net asp.net-membership membership-provider custom-membershipprovider
.net ×2
basecamp ×1
birt ×1
database ×1
encryption ×1
httplistener ×1
installer ×1
interface ×1
javascript ×1
oop ×1
postgresql ×1
refactoring ×1
reporting ×1
ssl ×1
unit-testing ×1
web-services ×1
xml ×1
xslt ×1
xul ×1
xulrunner ×1