我需要使用JavaScript重定向用户.哪种方法首选?
window.open("webpage.htm", "_self");
Run Code Online (Sandbox Code Playgroud)
要么
window.location.href = "webpage.htm";
Run Code Online (Sandbox Code Playgroud) 我有一组使用IErrorHandler包装异常的SOAP Web服务,具体来说:
public sealed class ErrorHandler : IErrorHandler
{
public bool HandleError(Exception error)
{
return true;
}
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
// don't wrap existing fault exceptions
if ((error is FaultException)) return;
// our basic service fault
var businessFault = new BusinessFault { FaultMessage = error.Message, FaultReference = "Internal" };
// Resource based faultReason
var faultReason = new FaultReason(Properties.Resources.BusinessFaultReason);
var faultcode = FaultCodeFactory.CreateVersionAwareSenderFaultCode(InternalFaultCodes.BusinessFailure.ToString(), Service.Namespace);
var faultException = new FaultException<BusinessFault>(
businessFault,
faultReason,
faultcode);
// Create …Run Code Online (Sandbox Code Playgroud) 我今天在WCF合同中遇到过这个问题:
[DataMember(IsRequired = true)]
public DateTime? LastModified { get; set; }
Run Code Online (Sandbox Code Playgroud)
可以IsRequired = True和可空的后果是什么DateTime?他们似乎彼此矛盾.
我正在尝试计算服务级别协议的截止日期,同时,我还需要在另一个方向上重新计算服务级别协议.
我一直在努力计算"工作时间"(即在一系列日子里工作的时间),并决定使用名为TimePeriodLibrary.NET的第三方库来完成任务.我需要做两件事:
DateTime和一个TimeSpan,您应该收到DateTime一个服务级别协议日期到期(到期日期).DateTime和结束时DateTime,您应该收到TimeSpan服务级别协议应该花多长时间.所有源代码(测试项目都在GitHub上).我有一个ServiceLevelManager完成所有工作的课程.它采取的列表WorkDays和HolidayPeriods,以计算出它们可被工作时间.这CalendarPeriodCollector堂课给出了意想不到的结果.在从时间跨度确定到期日期时起作用的期望,在我重新计算它们时不能正确计算.
任何人都可以看到我做错了什么,或者图书馆是否有错误?
namespace ServicePlanner
{
using System;
using System.Collections.Generic;
using Itenso.TimePeriod;
public class ServicePlannerManager
{
public ServicePlannerManager(IEnumerable<WorkDay> workDays, IEnumerable<HolidayPeriod> holidays)
{
this.WorkDays = workDays;
this.Holidays = holidays;
}
public IEnumerable<WorkDay> WorkDays { get; set; }
public IEnumerable<HolidayPeriod> Holidays { get; set; }
public TimeSpan GetRemainingWorkingTime(DateTime start, DateTime dueDate)
{
var filter = …Run Code Online (Sandbox Code Playgroud) 我正在寻求使用该IRequiresRequestStream接口来启用使用ServiceStack(v3)和分块传输编码的大文件上传(视频文件).标准文件上传似乎无法应对客户上传的一些较大的视频文件,因此我们希望为这些文件启用分块传输编码.
我已成功测试了分块传输编码文件上传,但还有许多参数需要与文件一起发送.
由于IRequiresRequestStream绕过了ServiceStack请求对象解析器,Stream因此显然没有填充请求对象中的任何其他参数.作为一种解决方法,我可以看到以下选项:
this.Request.QueryString集合访问this.Request.Headers集合访问RequestBinder?我已经设法实现了选项1和2,但不知何故感觉还不够RESTful.我更喜欢使用Path -> RequestDTO,但我正在努力RequestBinder.
服务:
public object Any(AttachmentStreamRequest request)
{
byte[] fileBytes = null;
using (var stream = new MemoryStream())
{
request.RequestStream.WriteTo(stream);
length = stream.Length;
fileBytes = stream.ToArray();
}
string filePath = @"D:\temp\test.dat";
File.WriteAllBytes(filePath, fileBytes);
var hash = CalculateMd5(filePath);
var requestHash = this.Request.QueryString["Hash"];
var customerId = this.Request.QueryString["CustomerId"];
var fileName = this.Request.QueryString["FileName"];
// nicer would be
// var requestHash = …Run Code Online (Sandbox Code Playgroud) 我有一个WCF客户端连接到基于Java的Axis2 Web服务(在我的控制之外).它即将应用WS-Security,我需要修复.NET客户端.但是,我正在努力提供正确的身份验证.我知道WSE 3.0可能会让它变得更容易,但我宁愿不再使用过时的技术.
SOAP消息应如下所示:
<wsse:UsernameToken>
<wsse:Username><!-- Removed--></wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"><!-- Removed--></wsse:Password>
<wsse:Nonce><!-- Removed--></wsse:Nonce>
<wssu:Created>2010-05-28T12:50:33.675+01:00</wssu:Created>
</wsse:UsernameToken>
Run Code Online (Sandbox Code Playgroud)
但是,我的看起来像这样:
<s:Header>
<h:Security xmlns:h="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"></h:Security>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2010-06-23T10:31:23.441Z</u:Created>
<u:Expires>2010-06-23T10:36:23.441Z</u:Expires>
</u:Timestamp>
<o:UsernameToken u:Id="uuid-d329b3b2-6a1f-4882-aea6-ec6b8a492de7-1">
<o:Username>
<!-- Removed-->
</o:Username>
<o:Password>
<!-- Removed-->
</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
Run Code Online (Sandbox Code Playgroud)
我的客户端看起来像这样:PS注意所需的 SecurityHeaderType参数.那是什么?
public MyAck SendRequest(MyRequest request)
{
RemoteServicePortTypeClient client = new RemoteServicePortTypeClient();
client.ClientCredentials.UserName.UserName = "JAY";
client.ClientCredentials.UserName.Password = "AND";
// what is the difference between the two different Credential …Run Code Online (Sandbox Code Playgroud) 我目前正在使用旧版本的Umbraco(4.03),我有几个基本站点(大多数是1个寻呼机)在同一个IIS应用程序下运行.
我有一个Winhost.com的共享主机帐户,它不提供多个站点应用程序根,只提供域指针,因此我仅限于支持多租户的单个CMS安装.
Umbraco多租户设置有点hacky,我真的需要升级.似乎Orchard更专注于多租户支持.我的Umbraco安装有一些共享皮肤的问题,这一直有点烦人.
那么,基本问题是:
基于多租户情景,有没有人有Umbraco和Orchard的经验可以给我一个意见/比较?如果是这样,Umbraco的新版本是否比我在多站点支持方面使用的版本更好?
PS我知道关于两个CMS项目之间的比较已经有一些关于SO的问题,但我对多租户比较特别感兴趣.
接受批量PUT创建然后返回多个位置的正确动词和响应是什么?Location标头仅显示支持单个Uri.
我原本假设我可以使用PUT进行批量创建并返回带有Uris列表的字符串数组,但是在查看规范时,似乎不支持,但它也不完全清楚.
是否允许多个位置标题作为替代?
有什么建议?
我正在寻找一个迁移框架,该框架将与使用.NetTiers的现有项目一起使用.NetTiers是一个需要CodeSmith生成数据访问代码的旧ORM.
我们有圆屋的经验,我们已成功使用它.在从Octopus Deploy运行部署时,我们还能够自动部署架构更改.相当简单,因为它只是SQL脚本的集合.
我有兴趣转到FluentMigrator.我喜欢FM DSL而且我发现这个SO问题非常有用,但是有一些我不理解的事情:
[*]我的假设是我使用SQL Server工具生成单个脚本,并使用ExecuteEmbeddedSql作为初始迁移.那是对的吗?
[**]似乎有三种主要方式来运行迁移(Command Line,NAnt runner,MSBuild runner).他们需要访问数据库才能运行.想象一下,我们希望将其部署到PROD环境中.开发人员和构建服务器无法访问此环境.你如何针对那种环境运行这些跑步者?
我们通常的部署过程是生成需要作为部署的一部分进行部署的SQL脚本集合.Ops作为部署的一部分运行它们,或者作为Octopus Deploy流程(powershell)的一部分自动运行,或者如果部署在Octopus之外,则手动运行.
我们在这个特定项目中遇到的一个复杂问题是.NetTiers.这意味着我们必须使用.NetTiers运行CodeSmith代码生成,才能构建数据访问层,然后才能对这些实体和数据服务进行编码.因此,我们的工作流程必须是:
我很想抛弃.NetTiers,但遗憾的是,重构不是一个可行的选择.
是否可以返回自定义身份验证响应?我已经拥有自己的自定义身份验证提供程序,它继承自CredentialsAuthProvider.
我想在响应中返回会话到期日期,以便客户端确切地知道他们的服务器会话何时到期:
{
"sessionId": "bG27SdxbRkqJqU6xv/gvBw==",
"userName": "joe.bloggs@letmein.com",
"sessionExpires": "2013-04-29T03:27:14.0000000",
"responseStatus": {}
}
Run Code Online (Sandbox Code Playgroud)
我可以像这样覆盖Authenticate方法:
public override object Authenticate(IServiceBase authService, IAuthSession session, Auth request)
{
// get base response
var response = base.Authenticate(authService, session, request);
// grab the session
var customSession = authService.GetSession() as CustomUserSession;
// if response can be cast and customSession exists
if (response is AuthResponse && customSession != null)
{
// cast
var authResponse = response as AuthResponse;
// build custom response
var customAuthResponse = new CustomAuthResponse
{
ReferrerUrl …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×3
wcf ×3
rest ×2
servicestack ×2
.nettiers ×1
asp.net ×1
axis2 ×1
datamember ×1
datetime ×1
http ×1
isrequired ×1
javascript ×1
multi-tenant ×1
orchardcms ×1
soap ×1
umbraco ×1
web-services ×1
ws-security ×1