设置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状态代码.
我希望能够在Visual Studio的调试窗口中的每个跟踪的开头看到时间戳.
Run Code Online (Sandbox Code Playgroud)[Time stamp here] The thread 'Win32 Thread' (0xcd0) has exited with code 0 (0x0). [Time stamp here] => CLR ProvideAssembly: AppDomainId: 1, Ref: 'msvcm90d...
示例是sysinternals应用程序 - DebugView.问题是我无法进行Visual Studio调试,同时使用DebugView进行侦听,而且我不习惯手动将时间戳添加到我的跟踪器中.
debugging timestamp visual-studio-2008 visual-studio output-window
的背景:
我们有一个主要实体是客户的应用程序.此应用程序中的所有信息均从客户处开始.我们认为如果我们可以将它用于某种分区,那将是非常好的.我们使用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联盟?您将如何转换?
谢谢.
我有问题,我需要根据对象类型进行动态调度.我需要调度的类型在编译时是已知的 - 在我的例子中它们是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) 这是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 ...
我正在使用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不删除此文件夹中的内容并仅替换现有文件吗?
感谢您提供有关此事的任何信息.
为什么这个代码示例在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会输出什么?
我知道Silverlight 4通过AutomationFactory该类支持COM互操作.
dynamic excel = AutomationFactory.CreateObject( "Excel.Application" );
excel.Visible = true;
Run Code Online (Sandbox Code Playgroud)
但是这会为COM对象创建一个单独的窗口.我在这里缺少的是,如果我实际上能够在我的Silverlight应用程序中实际托管Office文档 - 例如在ContentPresenter中?
是否可以在同一项目的单个目录中包含多个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包然后将其删除.我不愿意这样做,我正在寻找其他选择.
谢谢.
我们正在寻找一个版本控制系统来改变我们当前的Source Safe系统.我们将它与Visual Studio一起使用.到目前为止我们已经失败了 - 主要原因是我们看到的所有替代方案都不支持VSS的一个或多个功能,特别是我们广泛使用的一个 - 文件共享!那是怎么回事?
像Source Gear这样的替代品声称可以支持他们,但我必须告诉你他们这样做非常糟糕.更不用说它们比Source Safe慢,而且还有更多的bug.
我们有什么替代方法来获取支持文件共享的版本系统?或者有没有理由不使用这样的功能?请分享您的经验并支持您的意见.
编辑:
通过共享文件我的意思是我可以从任何共享它的项目中检出文件,进行一些更改,然后全部获得最新版本.在使用C++项目甚至C#Web项目时非常有用.我希望能够共享一个文件,而无需为此创建另一个库.
有没有办法编写强类型的 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。
编辑:
看起来你可以做到,但你不应该!绝对矫枉过正。测试显示执行计划慢了一千倍。并且它只会随着更大的结果集而变慢。
需要的是给出以下字符串" Other Text [[MyText]] Some Some Text ",并给出一些特定的字符,如"[["for start和"]]"for end,能够匹配"[[MyText ]]".
鉴于以下内容,regex = "(\[\[)(.*)(\]\])"我能够匹配我想要的,但不完全匹配.
可以说我有这个字符串"Other Text [[Something ... [[MyText]] ...... something ... [[MyOtherText]]" - 我需要在这里有2个匹配"[[MyText]] "&&"[[MyOtherText]]".我的正则表达式太过于渴望和比我真正想要的更多.
请,除了答案,我希望了解它是如何工作的,所以一些评论也会有所帮助.谢谢.
c# ×3
.net-4.7 ×1
aggregate ×1
asp.net ×1
azure ×1
c++ ×1
c++-cli ×1
clr ×1
com-interop ×1
debugging ×1
httpresponse ×1
indexing ×1
msbuild-4.0 ×1
nuget ×1
nuspec ×1
operators ×1
regex ×1
silverlight ×1
sql ×1
sql-server ×1
tfs2010 ×1
timestamp ×1