有什么方法可以在使用时提取有关我的Web服务方法中使用的客户端证书的信息<security mode="Transport>?我通过OperationContext.Current筛选但是找不到任何明显的东西.
我的服务器配置如下:
<basicHttpBinding>
<binding name="SecuredBasicBindingCert">
<security mode="Transport">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
Run Code Online (Sandbox Code Playgroud)
我正在使用第三方发布/订阅系统,不幸的是使用DataPower进行身份验证.好像我在这个配置中使用WCF,然后我无法收集有关调用者的任何信息(因为实际上没有发送凭据).
我不知何故需要能够找出谁调用我的服务而不改变我的配置或要求他们改变他们的有效负载.
我有一个使用插件系统的Windows服务.我在插件基类中使用以下代码为每个DLL提供单独的配置(因此它将从中读取plugin.dll.config):
string dllPath = Assembly.GetCallingAssembly().Location;
return ConfigurationManager.OpenExeConfiguration(dllPath);
Run Code Online (Sandbox Code Playgroud)
这些插件需要调用WCF服务,因此我遇到的问题是new ChannelFactory<>("endPointName")只在托管应用程序的App.config中查找端点配置.
有没有办法简单地告诉ChannelFactory查看另一个配置文件或以某种方式注入我的Configuration对象?
我能想到的唯一方法是从读入的值手动创建EndPoint和Binding对象plugin.dll.config,并将它们传递给其中一个ChannelFactory<>重载.这看起来真的像重新创建了一个轮子,并且它可能会因为大量使用行为和绑定配置而变得非常混乱. 也许通过传递配置部分可以轻松创建EndPoint和Binding对象?
我有本地运行的软件,并在许多服务器上执行以下操作:
var queues = MessageQueue.GetPrivateQueuesByMachine("localhost");
Run Code Online (Sandbox Code Playgroud)
特别是一台服务器抛出一个异常:
System.Messaging.MessageQueueException: Message Queue service is not available.
at System.Messaging.MessageQueue.GetPrivateQueuesByMachine(String machineName)
Run Code Online (Sandbox Code Playgroud)
MSMQ的安装方式与我在其他机器上的安装方式相同.我还成功绑定了多个WCF服务net.msmq://localhost/private/....
有没有理由说MSMQ可能没有绑定到localhost?
检查出MSDN之后,似乎我应该使用".",这很有用,但是当localhost似乎完全有效时,我宁愿避免更改代码和重新部署.FWIW,这是我运行的其他一些测试的结果:
var queues = MessageQueue.GetPrivateQueuesByMachine("."); // succeeds
var queues = MessageQueue.GetPrivateQueuesByMachine("localhost"); // fails
var queues = MessageQueue.GetPrivateQueuesByMachine("127.0.0.1"); // fails
var queues = MessageQueue.GetPrivateQueuesByMachine("machineName"); // fails
Run Code Online (Sandbox Code Playgroud) IE6,IE7和IE8默认显示页面的垂直滚动条,即使它不可滚动.Chrome和Firefox不这样做(我假设Opera和Safari不一样).您可以使用CSS在FireFox中完成相同的行为:
body { overflow: -moz-scrollbars-vertical; }
Run Code Online (Sandbox Code Playgroud)
有没有办法在其他三个浏览器中强制显示可见滚动条?或者甚至更好,一种标准的方式吗?
我尝试编写一个扩展方法来接收ulong并返回一个字符串,该字符串以十六进制格式表示提供的值,没有前导零.我对我提出的建议并不满意......使用标准.NET库是不是更好的方法呢?
public static string ToHexString(this ulong ouid)
{
string temp = BitConverter.ToString(BitConverter.GetBytes(ouid).Reverse().ToArray()).Replace("-", "");
while (temp.Substring(0, 1) == "0")
{
temp = temp.Substring(1);
}
return "0x" + temp;
}
Run Code Online (Sandbox Code Playgroud) 我在解决如何以编程方式启用"需要SSL"复选框并使用Microsoft.Web.Administration在IIS应用程序中将"客户端证书"选项更改为"需要"时遇到了一些麻烦.
我发现网上的所有问题都与在网站上配置它有关,但我只需要为网站上托管的一些应用程序启用它.
有没有经验呢?
我试过这个开始:
application.EnabledProtocols = "http,https";
serverManager.CommitChanges();
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误:
文件名:\?\ C:\ Windows\system32\inetsrv\config\applicationHost.config错误:无法写入配置文件
这很奇怪,因为根据我的阅读,我收集该文件维护IIS配置,但它在Windows中不存在(我无法在TextPad中打开),但它确实存在于命令提示符中,我可以more它.
我正在使用MVC for REST,以便我可以利用Razor输出不同类型.CSV是这些输出之一.而不是为每种输入类型编写此模板:
ID,Created,Content
@foreach (var item in Model.TimeData)
{
<text>@item.ID,@item.Created,"@Html.Raw(item.Content.Replace("\"", "\"\""))"</text>
}
Run Code Online (Sandbox Code Playgroud)
我想利用params和System.Linq.Expressions.Expression编写这样的东西:
@{
Html.WriteCsv<TimeObject>(Model.TimeData, p => p.ID, p => p.Created, p => p.Content);
}
Run Code Online (Sandbox Code Playgroud)
我开始编写泛型HtmlHelper并很快意识到我遇到了值类型的问题(memberExpression将为null).下面的代码试图写出CSV标题(ID,Created,Content),但它只输出"Content"(因为ID和Created是值类型(int和DateTime)).
public static void WriteCsv<TModel>(this HtmlHelper htmlHelper, List<TModel> list, params Expression<Func<TModel, object>>[] expressions)
{
foreach (var expression in expressions)
{
MemberExpression memberExpression = expression.Body as MemberExpression;
if (memberExpression != null)
{
var propertyInfo = (PropertyInfo)memberExpression.Member;
htmlHelper.ViewContext.Writer.Write(propertyInfo.Name + Environment.NewLine);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图替换object与 …
更新:小提琴w /完整解决方案:http://jsfiddle.net/langdonx/VXBHG/
为了比较和对比KnockoutJS和AngularJS,我浏览了KnockoutJS交互式教程,在每个部分之后,我将使用我已经知道的少量AngularJS参考在AngularJS中重写它.
当我进入创建自定义绑定教程的第3步时,我认为现在是开始使用Angular Directive并编写自定义标记的好时机.然后我悲惨地失败了.
我遇到了两个我无法弄清楚的问题.我创造了一个新的小提琴试图围绕正在发生的事情...
ng-click?我可以让它工作的唯一方法是重命名它jqb-click 有点烦人..button()我的元素,事情变得奇怪.我的猜测是因为Angular和jQuery UI都在操纵HTML.我不希望这样,但Angular似乎span为我提供了它自己button(参见JavaScript的第21行),当然jQuery UI也是如此,我期望它.我修改了HTML以使其看起来正确,但即使在此之前,这些功能都不起作用.我仍然有范围问题,并且没有模板绑定.我错过了什么?我知道有一个AngularUI项目我应该看一看,我可以完成我只想用CSS做的事情,但此时它更多的是学习如何使用指令而不是认为这是一个好的理念.
伙计们,我是一个AngularJS新手,我正在尝试使用Angular创建绑定到模型层次结构的基本HTML层次结构.我的顶级模块如下所示:
angular.module('fooApp',['ngResource','myList'])在我的页面的根div处声明为ng-app ="fooApp".
然后我在页面中看到这样的HTML:
<my-item-list/>
Run Code Online (Sandbox Code Playgroud)
我有第二个模块,如下所示:
var myList = angular.module('myList', []);
myList.directive('myItemList', function factory() {
var directiveDefinitionObject = {
priority: 0,
templateUrl: '/assets/partials/my-item-list.html',
replace: false,
transclude: false,
restrict: 'E',
scope: false,
controller: function($scope, $element, $attrs, $transclude) {
// No Op
$scope.foo = 'bar';
},
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) {
// No Op
},
post: function postLink(scope, iElement, iAttrs, controller) {
// No OP
}
}
},
link: function postLink(scope, iElement, …Run Code Online (Sandbox Code Playgroud) 有人可以向我解释为什么第一个div和第二个div之间有额外的3px空间:
http://jsbin.com/aSoRoC/1/edit
<body style="margin: 0">
<div style="background-color: green;">
<svg style="background-color: red; margin: 0; padding: 0;" width="600" height="40" fill="#f00"></svg>
</div>
<div style="background-color: blue; width: 600px; height: 40px;"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
如果你穿上height: 40px;第一个div 就可以修复,但我不明白为什么这是必要的.这种情况在Chrome,FireFox和IE中普遍存在.