我无法弄清楚如何在使用HTTPS时为我的WCF服务启用每会话实例.(我不是ASP.NET专家,但如果可能的话,不想使用ASP.NET会话状态.)我使用的是.NET Framework 3.0.
我已经达到了以下矛盾,我希望有人可以告诉我逻辑中存在缺陷的地方.
1)由于客户的要求,该服务必须托管在IIS 6上.
2)服务需要在调用之间维护状态,包括SqlConnection和SqlTransaction实例(由于项目限制,丑陋但必要).
3)因此我需要使用wsHttpBinding.
4)服务需要能够从HttpContext.Current.User.Identity访问用户身份验证信息(例如,在IIS中使用Windows安全性).
5)因此需要HTTPS.
6)因此必须在绑定上配置传输级安全性.
7)配置服务以要求会话意味着我必须配置wsHttpBinding以使用可靠会话.
8)这要求在绑定上配置消息级安全性.
即(6)和(8)是相互排斥的.
似乎使用WCF会话要求我使用消息级安全性,这会阻止我使用HTTPS.
我错过了什么?
我有一个VS2010解决方案,其中包括几个Windows服务项目.我需要将这些服务部署为Team Build 2010中的构建的一部分,并且必须在多台Windows Server计算机上部署Windows服务.
我怎样才能做到这一点?
我希望xml编码为:
<?xml version="1.0" encoding="windows-1252"?>
Run Code Online (Sandbox Code Playgroud)
像encoding="windows-1252"我编写这段代码一样生成编码.
var myns = OS.xmlns;
using (var stringWriter = new StringWriter())
{
var settings = new XmlWriterSettings
{
Encoding = Encoding.GetEncoding(1252),
OmitXmlDeclaration = false
};
using (var writer = XmlWriter.Create(stringWriter, settings))
{
var ns = new XmlSerializerNamespaces();
ns.Add(string.Empty, myns);
var xmlSerializer = new XmlSerializer(OS.GetType(), myns);
xmlSerializer.Serialize(writer, OS,ns);
}
xmlString= stringWriter.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但我仍然没有得到我想要的编码我错过了什么?请指导我生成编码encoding="windows-1252"?.我需要在代码中更改什么?
是否可以使用自定义.NET数据提供程序而无需在GAC中安装它?
我可以引用自定义DLL并在配置文件中注册吗?
我有一个项目,我使用参考路径来存储必要的dll.
我的问题是,当我在TFS服务器检查了这些之后,我的同事从TFS服务器得到了最新的版本,他看不出在项目文件的属性页上的参考路径.
我做错了什么?
我正在尝试编写一些单元测试来测试我的WCF服务的端点,为此我想在单元测试本身而不是在IIS中托管服务.我找到了这篇文章,我已经阅读并进行了更改,所以我使用它进行托管ServiceHost,我可以看到单元测试试图运行它但我似乎遇到了一些问题.
当我运行测试时,我在打开服务时收到以下错误:
此服务需要ASP.NET兼容性,并且必须在IIS中托管.在IIS中托管服务并在web.config中启用ASP.NET兼容性,或将AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode属性设置为Required以外的值.
这是由我的服务类上的以下属性设置引起的:
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Required )]
Run Code Online (Sandbox Code Playgroud)
然后我尝试将以下内容添加到我的app.config中,但它似乎没有任何区别:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以解决这个问题吗?
我正在使用MVVM-Light,我的继电器命令工作正常,我刚刚读到我应该实现CanExecuteChanged和CanExecute.虽然我无法找到一个好的例子.
有没有人有一个如何实现这些的好例子.
CanExecute在无法执行时需要返回False,但不会只是取消按钮?
我什么时候执行CanExecuteChanged?
任何人都有任何好的例子,什么时候使用每一个,我的代码工作没有,但这篇博文说明我应该实现这些项目.
我有点困惑,因为我说我认为我只是将Enabled属性或东西绑定到ViewModel中的属性,所以我可以禁用按钮或类似的控件?
任何理解上的帮助都会非常感激.
编辑
这就是我现在所拥有的...它正在工作,但按钮不是物理禁用只有命令不运行,因为我返回false.我在构造函数中调用CanExecuteMe来强制运行RaiseCanExecuteChanged ...
这在我的viewmodel的construtor中运行
this.Page2Command = new RelayCommand(() => this.GoToPage2(), () => CanExecuteMe);
CanExecuteMe = false;
Run Code Online (Sandbox Code Playgroud)
这是我的其余代码,我从一个例子中得到了它.
private bool _canIncrement = true;
public bool CanExecuteMe
{
get
{
return _canIncrement;
}
set
{
if (_canIncrement == value)
{
return;
}
_canIncrement = value;
// Update bindings, no broadcast
//RaisePropertyChanged(CanIncrementPropertyName);
Page2Command.RaiseCanExecuteChanged();
}
}
public RelayCommand Page2Command
{
get;
private set;
}
private object GoToPage2() …Run Code Online (Sandbox Code Playgroud) 我的一个应用程序是生成以下XML文件.
<root>
<command name="Set">
<property name="PWR.WakeupOnLAN" value="6" errorcode="0x0"/>
</command>
<command name="Set">
</command>
<command name="biossettings">
<property name="task" value="Succeeded." errorcode="0x0"/>
</command>
</root>
Run Code Online (Sandbox Code Playgroud)
我有兴趣阅读"PWR.WakeupOnLAN"属性名称的值和错误代码.在发布之前,我尝试了各种各样的东西,但在PowerShell中找不到正确的代码来读取属性.任何人都可以帮助我使用PowerShell代码吗?
我有一个简单的脚本,它读取文件夹名称并将它们输出到文本文件中.我意识到我得到了更多输出然后我想要,所以我使用select-item cmdlet从哈希表中选择name属性.问题是仍然存在我省略的数据通常填充的所有空白区域,因为白色空间会破坏我的脚本,因此无法解决我的问题.
我已经尝试了一些[正则表达式]命令用(/ S +)删除空白,但我真的不知道我使用了一些代码试图从一个有人帮助我的例子进行调整.主题名称与此处的标题相同,也在此网站上.任何可以帮助我的人我会很感激!
基本上,我无法弄清楚如何将文件夹的名称输出到一个简单的文本文件与ZERO空白(每个文件夹名称1行).
$accFolder = Read-Host "Enter the account folder container....: "
$dataArray = Get-ChildItem "D:\influxcyst\$accFolder" | select-object name
$dataArray
$dataArray | Out-File $HOME\desktop\$accFolder.txt
$newArray = get-content $HOME\desktop\$accFolder.txt
#[regex]$regex = "\s(\S+)\s"
#[regex]::matches($newArray,$regex) | foreach-object {$_.groups[1].value}
Run Code Online (Sandbox Code Playgroud) 我有一个用1.0版编写的Powershell脚本.在这个现有的旧脚本中,我需要设施从TFS获取项目的最新代码.我在机器上有TFS客户端,这让我可以使用TFS命令行.我创建了TFS命令行注释以从TFS获取最新信息.这些命令从命令propmt成功运行.
现在我需要在旧的poweshell脚本中包含这些TFS命令.我需要知道这是否可行?如果是,那么如何.
谢谢.
.net ×6
powershell ×3
c# ×2
wcf ×2
ado.net ×1
asp.net ×1
canexecute ×1
dataprovider ×1
deployment ×1
formatting ×1
https ×1
iis-6 ×1
msbuild ×1
mstest ×1
mvvm ×1
mvvm-light ×1
parsing ×1
regex ×1
relaycommand ×1
system.data ×1
team-build ×1
tfs ×1
unit-testing ×1
whitespace ×1