小编Iva*_*nov的帖子

如何以编程方式在ASP.NET应用程序中设置不同于200 OK的Response.StatusCode并仍然成功向客户端提供内容?

设置Response.StatusCode = 404不提供IE8和Chrome下的内容?虽然我发现它很奇怪但它在Mozilla中有效!

做最简单的事情 - 使用空的Default.aspx页面清空asp.net Web应用程序项目.在Page_Load事件中使用以下内容:

protected void Page_Load( object sender, EventArgs e )
{
    Response.StatusCode = 404;
}
Run Code Online (Sandbox Code Playgroud)

这有效地将当前请求的状态代码设置为404,毫无疑问.在IE8或Chrome下渲染时,或者也可能是其他一些浏览器 - 我还没有测试过,实际页面根本没有显示.这些浏览器显示其默认的404错误页面(不是默认的IIS自定义错误).IE8中的示例:

The webpage cannot be found 
 HTTP 404  
   Most likely causes:
•There might be a typing error in the address.
•If you clicked on a link, it may be out of date. ... and so on ...
Run Code Online (Sandbox Code Playgroud)

我真正想要做的是提供404错误页面,其中包含404错误代码,实际上会告诉浏览器或爬虫或者此页面不存在的任何人 - 不仅要显示一些带有状态消息的精美自定义错误消息200 OK .

使用fiddler表明我实际上真的在服务请求,但是浏览器完全无视它?!

我的问题 - 如何设置404状态代码并仍然呈现页面内容?示例 - http://www.intel.com/invalidpage.wow.使用fiddler显示此页面提供404状态代码.

asp.net httpresponse http-status-codes

14
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2008调试窗口显示时间戳?

我希望能够在Visual Studio的调试窗口中的每个跟踪的开头看到时间戳.

 [Time stamp here] The thread 'Win32 Thread' (0xcd0) has exited with code 0 (0x0).

 [Time stamp here] => CLR ProvideAssembly: AppDomainId: 1, Ref: 'msvcm90d...
Run Code Online (Sandbox Code Playgroud)

示例是sysinternals应用程序 - DebugView.问题是我无法进行Visual Studio调试,同时使用DebugView进行侦听,而且我不习惯手动将时间戳添加到我的跟踪器中.

debugging timestamp visual-studio-2008 visual-studio output-window

9
推荐指数
1
解决办法
3756
查看次数

Azure联盟已弃用.我有什么选择?

的背景:

我们有一个主要实体是客户的应用程序.此应用程序中的所有信息均从客户处开始.我们认为如果我们可以将它用于某种分区,那将是非常好的.我们使用Azure SQL数据库作为后端设计了该服务.

我们的表格看起来像这样(为简洁起见,只留下相关部分):

TABLE dbo.Orders
(
     CustomerId INT NOT NULL DEFAULT( FEDERATION_FILTERING_VALUE( 'FEDERATION_BY_CUSTOMER' ) ),
     OrderId INT NOT NULL,
     ....,
     CONSTRAINT PK_Orders PRIMARY KEY CLUSTERED ( CustomerId, OrderId )
) FEDERATED ON ( FEDERATION_BY_CUSTOMER = CustomerId );
Run Code Online (Sandbox Code Playgroud)

现在这让我们做了一些疯狂的事情.我们对所有SQL相关内容的入口点始终首先包含以下命令:

USE FEDERATION GroupFederation( FEDERATION_BY_CUSTOMER = 1 ) WITH RESET, FILTERING = ON
Run Code Online (Sandbox Code Playgroud)

在这种情况下这句话:

SELECT * FROM Orders
Run Code Online (Sandbox Code Playgroud)

要么

INSERT INTO Orders ( OrderId ) VALUES ( 10 );
Run Code Online (Sandbox Code Playgroud)

只需要处理给定客户的数据,就可以顺利运行.CustomerId COLUMN将始终从系统函数FEDERATION_FILTERING_VALUE中推断出来;

现在我们可以将所有客户都放在一个数据库中而不会出现问题,并且它们将彼此隔离.如果将来某个时候,其中一个太大了,我们可以在该特定客户ID上拆分联盟,我们不必更改代码中的任何内容来支持它.

哎呀,我们可以让每个客户都在分离的联邦数据库中,而使用它的服务也不会对它有任何了解.

我们对我们的解决方案非常满意,我认为我非常聪明地想出来.直到最近,当微软宣布他们正在使用即将推出的新的azure数据库版本弃用azure联合功能时.在这里这里阅读更多相关信息.

我希望你能看到我的问题.您认为我的替代方案是什么?您是否使用Azure联盟?您将如何转换?

谢谢.

sql-server azure sql-azure-federations

8
推荐指数
1
解决办法
3654
查看次数

在比较字典查找与多个数据时,意外的性能结果是.NET 4.7中的运算符

我有问题,我需要根据对象类型进行动态调度.我需要调度的类型在编译时是已知的 - 在我的例子中它们是17.

我最初的猜测是使用a Dictionary<Type, Action<Object>>进行调度并obj.GetType()用于找出适当的操作.但后来我决定使用BenchmarkDotNet来看看我是否可以做得更好以及调度查找的确切成本.贝娄是我用于基准测试的代码.

public class Program
{
    private static readonly Object Value = Guid.NewGuid();
    private static readonly Dictionary<Type, Action<Object>> Dictionary = new Dictionary<Type, Action<Object>>()
    {
        [ typeof( Byte ) ] = x => Empty( (Byte)x ),
        [ typeof( Byte[] ) ] = x => Empty( (Byte[])x ),
        [ typeof( SByte ) ] = x => Empty( (SByte)x ),
        [ typeof( Int16 ) ] = x => Empty( (Int16)x ),
        [ …
Run Code Online (Sandbox Code Playgroud)

c# microbenchmark .net-4.7

8
推荐指数
1
解决办法
337
查看次数

为什么C#不支持运算符重载并通过引用传递?

这是CLR限制还是语言设计决定?我尝试在C++/CLI中进行,当然它的工作原理是因为需要支持本机c ++:

public ref class Test
    {
        public:
        static Test^ operator &( Test^ msg, int& i )
        {
            i = i + 1;

            return nullptr;
        } 
    };
Run Code Online (Sandbox Code Playgroud)

然后看了编译器省略的输出:

public: static Test __gc* op_BitwiseAnd(Test __gc* msg, Int32 __gc** modopt(IsImplicitlyDereferenced __gc*) i)
{
    i[0] += 1;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我走得更远,试图从C#项目调用这个操作符 - 当然我需要[不安全]来做它(我需要指针):

Test t = new Test();
int i = 0;

unsafe
{
    t = t & &i;
} 
Run Code Online (Sandbox Code Playgroud)

CLR显然没那么难实现?我真的很想念运营商超载中的参考文献,并且至少想知道为什么这会丢失?

当我们需要在运算符重载中处理引用变量时,为什么C#不能隐藏不安全和指针背后的丑陋?即使我选择使用这种丑陋的解决方法,它也不适用于不允许不安全操作的Silverlight ...

c# clr c++-cli operator-overloading command-line-interface

6
推荐指数
1
解决办法
1984
查看次数

如何告诉MSBuild将许多Web项目发布到一个目录中?

我正在使用TFS 2010运行自动构建.在一个解决方案中,我有多个Web应用程序,它们都位于相同的根目录下 - 例如:

RootDir - >

   WebApplicationProject1.csproj
   WebApplicationProject2.csproj
   ...
Run Code Online (Sandbox Code Playgroud)

当我运行自动构建时,我为MSBuild设置了以下参数:

/ p:DeployOnBuild = true; DeployTarget = PipelinePreDeployCopyAllFilesToOneFolder; _PackageTempDir ="\ computer\Builds\Published"/ p:SkipExtraFilesOnServer = true

但是,MSBuild不会保留此文件夹中的现有内容,并且每个项目都会删除此文件夹中的内容.最后一个项目是获胜者.

我可以让MSBuild不删除此文件夹中的内容并仅替换现有文件吗?

感谢您提供有关此事的任何信息.

tfs2010 msbuild-4.0

6
推荐指数
1
解决办法
883
查看次数

一个语句中的索引,赋值和增量在C++和C#中表现不同.为什么?

为什么这个代码示例在c ++C#中表现不同.

[C++示例]

int arr[2];
int index = 0;
arr[index] = ++index;
Run Code Online (Sandbox Code Playgroud)

结果将是arr [1] = 1 ;

[C#示例]

int[] arr = new int[2];
int index = 0;
arr[index] = ++index;
Run Code Online (Sandbox Code Playgroud)

结果将是arr [0] = 1 ;

我觉得这很奇怪.当然,两种语言必须有不同的理由来实现它吗?我想知道C++/CLI会输出什么?

c# c++ indexing operators prefix-operator

5
推荐指数
1
解决办法
3039
查看次数

在Silverlight 4中托管Microsoft Office应用程序?

我知道Silverlight 4通过AutomationFactory该类支持COM互操作.

dynamic excel = AutomationFactory.CreateObject( "Excel.Application" );
excel.Visible = true;
Run Code Online (Sandbox Code Playgroud)

但是这会为COM对象创建一个单独的窗口.我在这里缺少的是,如果我实际上能够在我的Silverlight应用程序中实际托管Office文档 - 例如在ContentPresenter中?

silverlight com-interop silverlight-4.0

5
推荐指数
1
解决办法
843
查看次数

项目目录中有多个.nuspec文件?

是否可以在同一项目的单个目录中包含多个nuspec文件,并且仍然能够合并项目和指定的nuspec文件.

我想知道这样的事情是否可行:

nuget pack MyProject.csproj MyProject-x86.nuspec -prop Configuration=Release;Platform="x86"
nuget pack MyProject.csproj MyProject-AnyCpu.nuspec prop Configuration=Release
Run Code Online (Sandbox Code Playgroud)

我需要能够使用多个构建配置发布我的项目,因此我需要创建不同的包.

我最后的办法是在构建时复制csproj文件,例如将其重命名为"MyProject-x86.csproj",运行nuget包然后将其删除.我不愿意这样做,我正在寻找其他选择.

谢谢.

nuget nuspec

5
推荐指数
1
解决办法
978
查看次数

为什么版本控制系统缺乏Visual Source Safe的共享功能以及您使用什么源代码控制并且值得尝试?

我们正在寻找一个版本控制系统来改变我们当前的Source Safe系统.我们将它与Visual Studio一起使用.到目前为止我们已经失败了 - 主要原因是我们看到的所有替代方案都不支持VSS的一个或多个功能,特别是我们广泛使用的一个 - 文件共享!那是怎么回事?

像Source Gear这样的替代品声称可以支持他们,但我必须告诉你他们这样做非常糟糕.更不用说它们比Source Safe慢,而且还有更多的bug.

我们有什么替代方法来获取支持文件共享的版本系统?或者有没有理由不使用这样的功能?请分享您的经验并支持您的意见.

编辑:

通过共享文件我的意思是我可以从任何共享它的项目中检出文件,进行一些更改,然后全部获得最新版本.在使用C++项目甚至C#Web项目时非常有用.我希望能够共享一个文件,而无需为此创建另一个库.

version-control visual-sourcesafe visual-studio

3
推荐指数
1
解决办法
1292
查看次数

SQL Server 2005/2008 Group By 语句带参数而不使用动态 SQL?

有没有办法编写强类型的 SQL Server 存储过程(即返回列的已知结果集)并使其组语句是动态的。

就像是:

SELECT SUM( Column0 ) FROM Table1
GROUP BY @MyVar
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下方法:

SELECT SUM( Column0 ) FROM Table1
GROUP BY CASE @MyVar WHEN 'Column1' THEN Column1 ELSE Column2
Run Code Online (Sandbox Code Playgroud)

第二条语句仅适用于 Column1 和 Column2 的数据库类型相同的场景。如果它们不是 SQL 引擎,则会抛出类似于以下内容的错误:“将 nvarchar 值 'SYSTEM' 转换为数据类型 [The Different TYPE] 时,转换失败。”

我能做些什么来获得强大的结果集,同时又拥有一些动态的部分——即我的情况下的石斑鱼?这将暴露给 LINQ。

编辑:

看起来你可以做到,但你不应该!绝对矫枉过正。测试显示执行计划慢了一千倍。并且它只会随着更大的结果集而变慢。

sql aggregate sql-server-2005 sql-server-2008

2
推荐指数
1
解决办法
2862
查看次数

正则表达式匹配给定字符之间的内容

需要的是给出以下字符串" Other Text [[MyText]] Some Some Text ",并给出一些特定的字符,如"[["for start和"]]"for end,能够匹配"[[MyText ]]".

鉴于以下内容,regex = "(\[\[)(.*)(\]\])"我能够匹配我想要的,但不完全匹配.

可以说我有这个字符串"Other Text [[Something ... [[MyText]] ...... something ... [[MyOtherText]]" - 我需要在这里有2个匹配"[[MyText]] "&&"[[MyOtherText]]".我的正则表达式太过于渴望和比我真正想要的更多.

请,除了答案,我希望了解它是如何工作的,所以一些评论也会有所帮助.谢谢.

regex

0
推荐指数
1
解决办法
1156
查看次数