小编Kai*_*ann的帖子

如何在Asp.Net Mvc 3中显示自定义错误页面?

我希望将所有401错误重定向到自定义错误页面.我最初在web.config中设置了以下条目.

<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
  <error statusCode="401" redirect="~/Views/Shared/AccessDenied.aspx" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

使用IIS Express时,我收到了IIS Express 401错误页面.

如果我不使用IIS Express,则返回空白页面.使用Google Chrome的"网络"标签检查响应,我看到当页面为空白时,标题中会返回401状态

到目前为止我尝试使用的是这个SO答案中的建议,因为我使用的是IIS Express,但无济于事.我尝试过使用组合<custom errors><httpErrors>没有运气 - 标准错误或空白页仍然显示.

httpErrors部分看起来像这样的基础上,瞬间链接上面的SO问题(我还发现了另一种非常有前途的答案却没有运气-空白响应)

<system.webServer>
  <httpErrors  errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
    <remove statusCode="401"  />
    <error statusCode="401" path="/Views/Shared/AccessDenied.htm" />
  </httpErrors>

 <!-- 
 <httpErrors  errorMode="Custom" 
             existingResponse="PassThrough" 
             defaultResponseMode="ExecuteURL">
      <remove statusCode="401"  />
  <error statusCode="401" path="~/Views/Shared/AccessDenied.htm" 
         responseMode="File" />
 </httpErrors>
 -->
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我甚至已经修改了applicationhost.config文件,并修改<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">,以<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated">基于从信息iis.net.在我努力的过程中,我也设法偶然发现了另一个SO问题中描述的这个错误.

如何在Asp.Net Mvc …

error-handling http-error custom-error-pages iis-express asp.net-mvc-3

23
推荐指数
3
解决办法
3万
查看次数

在ASP.NET MVC应用程序中使用HandleErrorAttribute

我有一个关于在我的MVC 5应用程序中使用HandleErrorAttribute的最佳方法的问题.我们知道,我们可以将此属性添加到全局过滤器中:

 filters.Add(new HandleErrorAttribute{View = "Error"});
Run Code Online (Sandbox Code Playgroud)

这涉及应用程序每次在任何级别的应用程序中抛出未处理的异常时显示"错误"视图.但是,如果我在其他全局授权或动作过滤器中有一些逻辑,产生一些异常,比第一次出现异常时,则app尝试重定向到Error View,再次其他过滤器开始执行并再次产生相同的异常,所以asp .net以避免此循环终止应用程序.那么如何使用这个HandleErrorAttribute来避免这种行为的最佳方法呢?谢谢!

编辑: 经过一些调试后我发现这不是HandleErrorAttribute的常见行为,所以只有当我使用自定义路由时才会出现这种循环

{key}/{controller}/{action}
Run Code Online (Sandbox Code Playgroud)

当过滤器逻辑中出现一些错误时,app会尝试重定向到错误视图,但是另一个过滤器逻辑再次开始执行,我甚至在{key}路由参数中看到"错误"值,因此这是不需要的行为.当我使用默认路由时,{controller}/{action} 这不会发生,我完全得到错误视图而没有第二次执行任何全局过滤器逻辑.

c# asp.net-mvc attributes asp.net-mvc-5

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

多线程比单线程慢

我有以下代码(控制台应用程序的'Program.cs'的完整内容).'countUp'直到'countUp4'的单线程执行需要13秒,多线程执行21秒.

我有一个Intel Core i5-2400 @ 3.10 GHz,8 GB Ram,Windows 7 64 Bit.那么为什么mutli线程执行比单线程执行慢?

多线程对于不阻塞简单c#应用程序的主程序有用吗?多线程什么时候给我一个执行速度的优势?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static int counter = 0;
        static int counter2 = 0;
        static int counter3 = 0;
        static int counter4 = 0;

        static void Main(string[] args)
        {
            Console.WriteLine("Without multithreading:");
            Console.WriteLine("Start:" + DateTime.Now.ToString());

            countUp();
            countUp2();
            countUp3();
            countUp4();

            Console.WriteLine("");
            Console.WriteLine("With multithreading:");
            Console.WriteLine("Start:" + DateTime.Now.ToString());

            Thread thread1 = new Thread(new ThreadStart(countUp));
            thread1.Start();
            Thread thread2 = new …
Run Code Online (Sandbox Code Playgroud)

c# performance multithreading

9
推荐指数
2
解决办法
4114
查看次数

在单元测试期间获取引用项目的路径

我尝试使用单元测试在我的(ASP.Net)webapplication中测试类的功能.此类从harddrive加载一些文件(以执行xsl转换):

Xsl = GetXSLFromFile(AppDomain.CurrentDomain.BaseDirectory + "\XML Transformationen\Transformation_01.xslt")
Run Code Online (Sandbox Code Playgroud)

在调试Web应用程序本身期间,可以正确解析此路径.但每当我开始单元测试(它位于一个单独的测试项目中,引用webapplication的项目)时,我就会得到测试项目的路径.

是否有可能在这种情况下获取Web应用程序的路径,或者我是否必须使用不同的方法?任何提示都表示赞赏.

亲切的问候,凯哈特曼

c#

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

将CSS悬停应用于剪切图像的可见部分

.circle {
  -webkit-clip-path: circle(120px at center);
          clip-path: circle(120px at center);
}

.circle:hover {
  cursor:move;
}
Run Code Online (Sandbox Code Playgroud)
<img src="http://www.publicdomainpictures.net/pictures/10000/nahled/2185-1265776088aCTz.jpg" alt="" class=" circle">
Run Code Online (Sandbox Code Playgroud)

有没有办法让悬停只应用于图像的可见部分?

css hover clip-path

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

检查数组中所有元素的条件是否为真

我在 Unity3D 中有一个 C# 数组类型的 Transform 对象。要赢得比赛,所有图片的 rotation.z 值必须为 0。

Transform[] Pictures;

if (Pictures[0].rotation.z == 0 &&
    Pictures[1].rotation.z == 0 &&
    Pictures[2].rotation.z == 0 &&
    Pictures[3].rotation.z == 0 &&
    Pictures[4].rotation.z == 0 &&
    Pictures[5].rotation.z == 0)
{
    YouWin = true;
    //WinText.enabled = true;//.SetActive(true);
    int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
    SceneManager.LoadScene(currentSceneIndex + 1);
}
Run Code Online (Sandbox Code Playgroud)

但这是丑陋的方式。如果数组扩展,游戏不会结束。因此,我尝试编写新代码以使事情变得更容易。但不能。

foreach (var item in Pictures)
{
    if (item.rotation.z == 0)
    {
        YouWin = true;
        int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
        SceneManager.LoadScene(currentSceneIndex + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

foreach 不能正常工作。在第一个图像中存在于 foreach。必须检查每个图像的 rotation.z 值。 …

c# arrays foreach for-loop

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