我们有一个WCF(Windows Communication Foundation)客户端和服务应用程序.我们正在使用带有Kerberos的Windows身份验证.
问题是该服务可能在许多帐户中运行(可能是网络服务,可能是特定的用户帐户 - 取决于IT组).这个帐户不太可能每天都有变化,但可能会发生变化(可能每隔几个月).此外,我们将此客户端/服务包提供给多个组,每个组可能拥有自己用于运行服务的帐户(这只是让您知道我们无法为单个团队执行自定义解决方案).
现在上述段落成为问题的原因显然是如果服务未在SYSTEM或NETWORK SERVICE帐户(即用户帐户)中运行,则客户端必须在其端点的标识中指定用户帐户的名称.
有关此限制的更多信息,请参阅:http: //social.msdn.microsoft.com/Forums/en-US/wcf/thread/feb6bc31-9a4b-4f8d-a887-ef6d2c7abe41 和http://www.vistax64.com/indigo /146204-using-localhost-vs-environment-machinename.html
现在,这似乎很难处理IT部门更改服务运行的帐户的情况.如果有的话,处理这个的模式是什么?别人怎么处理这个?我想到的一个解决方案是,当服务的用户帐户发生更改时,管理员会发送一封电子邮件,其中包含指向更新客户端或配置文件的应用程序的网络链接,因此客户端引用新的用户帐户.但这似乎是黑客.
不可否认,这很像移动端点的URI.除此之外,我认为代表人们有更多的期望,更改URI是客户端应该知道的事情,但更改运行服务的帐户应该对客户端相对透明.
顺便说一下,如果这很重要,这需要在IIS 7.0上托管.
在为我的网站编写pingback处理程序的过程中,我注意到XML-RPC规范没有说明应该定义哪些错误代码以及它们应该是什么意思.所以问题是,是否有一个普遍接受的故障代码标准来指定这些信息?定义了哪些故障代码,它们的含义是什么?一般用于XML-RPC,还是用于特定应用程序(如pingback)?
我想我知道答案,但我想得到社区的意见(我认为这是很好的参考资料).
我正在使用WCF和WebHttpBinding实现RESTful Web服务.目前我正在处理错误处理逻辑,实现自定义错误处理程序(IErrorHandler); 目的是让它捕获操作抛出的任何未捕获的异常,然后返回一个JSON错误对象(包括说错误代码和错误消息 - 例如{"errorCode":123,"errorMessage":"bla"})回到浏览器用户以及一个HTTP代码,例如BadRequest,InteralServerError或其他任何东西(除了'确定'以外的任何东西).这是我在错误处理程序的ProvideFault方法中使用的代码:
fault = Message.CreateMessage(version, "", errorObject, new DataContractJsonSerializer(typeof(ErrorMessage)));
var wbf = new WebBodyFormatMessageProperty(WebContentFormat.Json);
fault.Properties.Add(WebBodyFormatMessageProperty.Name, wbf);
var rmp = new HttpResponseMessageProperty();
rmp.StatusCode = System.Net.HttpStatusCode.InternalServerError;
rmp.Headers.Add(HttpRequestHeader.ContentType, "application/json");
fault.Properties.Add(HttpResponseMessageProperty.Name, rmp);
Run Code Online (Sandbox Code Playgroud)
- >返回Content-Type:application/json,但状态代码为'OK'而不是'InternalServerError'.
fault = Message.CreateMessage(version, "", errorObject, new DataContractJsonSerializer(typeof(ErrorMessage)));
var wbf = new WebBodyFormatMessageProperty(WebContentFormat.Json);
fault.Properties.Add(WebBodyFormatMessageProperty.Name, wbf);
var rmp = new HttpResponseMessageProperty();
rmp.StatusCode = System.Net.HttpStatusCode.InternalServerError;
//rmp.Headers.Add(HttpRequestHeader.ContentType, "application/json");
fault.Properties.Add(HttpResponseMessageProperty.Name, rmp);
Run Code Online (Sandbox Code Playgroud)
- >返回正确的状态代码,但内容类型现在是XML.
fault = Message.CreateMessage(version, "", errorObject, new DataContractJsonSerializer(typeof(ErrorMessage)));
var wbf = new WebBodyFormatMessageProperty(WebContentFormat.Json);
fault.Properties.Add(WebBodyFormatMessageProperty.Name, wbf);
var response = WebOperationContext.Current.OutgoingResponse;
response.ContentType …Run Code Online (Sandbox Code Playgroud) 我正在使用Objective-C,我需要将NSArray中的int添加到NSMutableData(我正在准备通过连接发送数据).如果我用NSNumber包装int,然后将它们添加到NSMutableData,我怎么能找出NSNumber int中有多少字节?是否有可能使用sizeof(),因为根据Apple文档,"NSNumber是NSValue的子类,它提供任何C标量(数字)类型的值."?
例:
NSNumber *numero = [[NSNumber alloc] initWithInt:5];
NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
[data appendBytes:numero length:sizeof(numero)];
Run Code Online (Sandbox Code Playgroud) 在Eclipse编辑器中,如果我去搜索 - >文件,我可以搜索包含我的搜索词的文件.我想要做的是找到所有不包含我的搜索词的文件.那可能吗?
我正在尝试将我创建的函数添加到钩子中,但显而易见的(对我的Schemer头脑)方式似乎不起作用.该功能在2个地方使用,我想保持我的代码DRY,所以没有匿名功能.虽然我可以将我的函数包装在lambda中,但必须有更好的方法.
不起作用:
(defun my-function ()
;; do my stuff)
(add-hook 'some-hook-list my-function)
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
符号的值作为变量是void:my-function
如果我想将WAV文件的幅度降低25%,我会写这样的东西:
for (int i = 0; i < data.Length; i++)
{
data[i] *= 0.75;
}
Run Code Online (Sandbox Code Playgroud)
然而,我读到的很多关于音频技术的文章都以分贝的形式讨论了振幅.我原则上理解分贝单元的对数性质,但在实际代码方面却没有那么多.
我的问题是:如果我想减少一个WAV文件的音量,比如20分贝,我会如何像上面的例子一样在代码中这样做?
更新:公式(基于Nils Pipenbrinck的答案)用于衰减给定数量的分贝(输入为正数,例如10,20等):
public void AttenuateAudio(float[] data, int decibels)
{
float gain = (float)Math.Pow(10, (double)-decibels / 20.0);
for (int i = 0; i < data.Length; i++)
{
data[i] *= gain;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我想衰减20分贝,增益因子是.1.
我使用以下代码从我的控制器中初始化模型:
$this->load->model('model_name');
Run Code Online (Sandbox Code Playgroud)
是否有可能以某种方式修改上面的行,以便模型构造函数接收参数?我想在模型构造函数中使用以下代码:
function __construct($param_var) {
parent::Model();
$this->$param_var = $param_var; //I'm not even sure this works in PHP..but different issue
}
Run Code Online (Sandbox Code Playgroud)
这将非常有用,以便我可以重用我的模型类.谢谢.
更新:(从其中一个答案,我原来的问题解决了......谢谢!)只是为了解释我为什么要这样做:想法是能够重用模型类.所以基本上给出一个简单的例子我希望能够将"order_by"变量传递给模型类,这样我就可以重用模型类中的逻辑(并动态地更改sql中的order-by值)而不必创建单独的类或单独的函数.
这是一个糟糕的设计?如果是这样,请解释为什么你不会做这样的事情以及你将如何做呢?
给出以下方法:
// Method 1
void add(const std::string& header, bool replace);
//Method 2
void add(const std::string& name, const std::string& value);
Run Code Online (Sandbox Code Playgroud)
看起来以下代码最终会调用方法1而不是方法2:
something.add("Hello", "World");
Run Code Online (Sandbox Code Playgroud)
我最终创建了另一个看起来像这样的方法:
//Method 3
void MyClass::add(const char* name, const char* value) {
add(std::string(name), std::string(value));
}
Run Code Online (Sandbox Code Playgroud)
有效.因此,当方法接受"带引号的字符串"时,它将按以下顺序匹配:
const char*boolstd::string为什么引用的字符串会被视为a bool之前的std::string?这是通常的行为吗?我已为此项目编写了大量代码,并且在选择了错误的方法签名时没有任何其他问题...
对于我的iPhone项目中的断言宏,我正在寻找一种以编程方式进入调试器的方法.在Windows(MSVC++)上,我可以使用__debugbreak()来实现此目的.调用此函数将停止我的程序,启动调试器,并显示调用__debugbreak()的行的调用堆栈.
iPhone的__debugbreak()有什么类似的东西吗?我已经尝试过Debugger(),但这给了我一个链接器错误.
谢谢,克劳斯
wcf ×2
.net ×1
arguments ×1
assert ×1
audio ×1
boolean ×1
byte ×1
c++ ×1
codeigniter ×1
debugging ×1
deployment ×1
dot-emacs ×1
eclipse ×1
elisp ×1
emacs ×1
integer ×1
iphone ×1
kerberos ×1
nsdata ×1
nsnumber ×1
objective-c ×1
php ×1
rest ×1
search ×1
string ×1
wav ×1
wcf-security ×1
web-services ×1
xml-rpc ×1