小编All*_*ice的帖子

我的EventWaitHandle说"拒绝访问路径",但事实并非如此

快速总结我现在所知道的

我有一个EventWaitHandle我创建然后关闭的.当我尝试使用此ctor重新创建它时,会抛出"访问路径...被拒绝"异常.这个例外是罕见的,大多数时候它只是重新创建EventWaitHandle就好了.下面的答案(由我发布),我能够成功地打电话EventWaitHandle.OpenExisting并继续,如果抛出异常,但是,EventWaitHandle应该为我做这个,对吗?这不是什么out参数,createdNew是为了什么?


最初的问题

我在同一台服务器上有以下架构,Windows服务和Web服务.Web服务通过打开和设置Windows服务正在等待的等待句柄告诉Windows服务它必须工作.

通常一切都完美无瑕,我能够启动/停止Windows服务,而不会出现任何问题.但是,有时当我停止Web服务然后再次启动它时,它将完全无法创建等待句柄,从而破坏了整个架构.

我特别需要找出什么是破坏事件等待句柄并停止它.当等待句柄"中断"时,我必须重新启动窗口才能再次正常运行,这显然不太理想.

更新:抛出异常和问题日志

我重新启动Windows服务,而Web服务正在工作,希望导致问题,它做到了!一些班级名称已经因公司匿名而受到审查

12:00:41,250 [7] - Stopping execution due to a ThreadAbortException
System.Threading.ThreadAbortException: Thread was being aborted.
   at System.Threading.Thread.SleepInternal(Int32 millisecondsTimeout)
   at OurCompany.OurProduct.MyClass.MyClassCore.MonitorRequests()

12:00:41,328 [7] - Closing Event Wait Handle
12:00:41,328 [7] - Finally block reached


12:00:42,781 [6] - Application Start
12:00:43,031 [6] - Creating EventWaitHandle: Global\OurCompany.OurProduct.MyClass.EventWaitHandle
12:00:43,031 [6] - Creating EventWaitHandle with the security entity name of : Everyone

12:00:43,078 [6] …
Run Code Online (Sandbox Code Playgroud)

c# multithreading web-services windows-services waithandle

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

如何避免"无法在页面回调中调用Response.Redirect"

我正在清理一些遗留的框架代码,其中大量的代码只是异常编码.不检查任何值以查看它们是否为空,因此会抛出并捕获大量异常.

我有但是大多数清理,有一些错误/登录/安全相关的框架,正在做Response.Redirect的,现在,我们正在使用AJAX的方法,我们得到的ALOT 的Response.Redirect"不能被称为在页面回调中." 如果可能的话,我想避免这种情况.

有没有办法以编程方式避免此异常?我正在寻找类似的东西

if (Request.CanRedirect)
    Request.Redirect("url");
Run Code Online (Sandbox Code Playgroud)

注意,这也发生在Server.Transfer上,所以我希望能够检查我是否能够执行Request.Redirect或Server.Transfer.

目前,它只是这样做

try
{
    Server.Transfer("~/Error.aspx"); // sometimes response.redirect
}
catch (Exception abc)
{
    // handle error here, the error is typically:
    //    Response.Redirect cannot be called in a Page callback
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net response.redirect exception-handling asp.net-ajax

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

在这种情况下我们应该开发自定义会员提供商吗?

摘要

长话短说,我们的任务是去除一个相当古老而臃肿的asp.net应用程序的身份验证和授权部分,这些应用程序之前已经从头开始编写了所有这些组件.由于我们的应用程序不是典型的,并且我们都没有使用asp.net的内置成员资格提供程序的经验,我们不确定是否应该再次推出自己的身份验证和授权,或者我们是否应该尝试在asp.net会员提供商心态并开发我们自己的会员提供商.

我们的应用

我们有一个相当古老的asp.net应用程序,它安装在客户位置,为LAN上的客户提供服务.管理员创建用户(用户不注册),并且根据安装,我们可能将软件与LDAP集成.

目前,LDAP集成批量导入用户到我们的数据库,当他们登录时,它会对LDAP进行身份验证,因此我们不必管理他们的密码.没什么了不起的.

管理员可以将用户分配到1个组,他们可以更改该组的授权以管理对软件各个部分的访问.

组由Admins(基于Web的UI)维护,如前所述,授予/拒绝应用程序中某些功能的权限.

所有这些都是完全从头开始编写的,不使用任何内置的.net授权或身份验证.我们确实有一些IsLoggedIn()方法可以检查登录并重定向到我们的登录页面,如果不是的话.

我们的重写

我们的任务是与LDAP更紧密地集成,他们希望我们将应用程序中的组与LDAP中的组(或LDAP使用的任何类型的容器)联系起来,以便当客户选择使用我们的LDAP集成时,他们没有在LDAP和我们的应用程序中管理他们的用户.

新的方式是,他们只需在LDAP中创建用户,将他们添加到LDAP中的组,我们的应用程序将看到他们属于相应的LDAP组并进行身份验证和授权.

此外,我们已被授予完全删除用户身份验证和授权代码并完全重新执行的权限.

我们的问题

问题是我们都没有任何使用asp.net会员提供程序功能的经验.我对它的一点点曝光让我担心它不能用于像我们这样的应用程序.虽然,开发我们自己的ASP.NET成员资格提供程序和角色管理器听起来像是一个很棒的体验,很可能是适当的事情.

基本上,我正在寻找建议,我们是否应该使用ASP.NET成员资格提供程序和角色管理API,还是应该继续推广自己的?我知道这个决定会受到我们要求的影响,所以我将在下面讨论它们

我们的要求

只是一个快速的脏列表

  • 保持拥有数据库用户并对其进行身份验证的能力,并为管理员(仅限用户)提供CRUD用户的能力
  • 允许站点与LDAP集成,如果选择此选项,他们不希望任何用户存储在数据库中,只需要存在于我们的app/db中的组与LDAP /容器中存在的组/容器之间的关系.
  • 正在使用.net 3.5(asp.net webforms和asp.net mvc的混合)
  • 必须在ASP.NET和ASP.NET MVC中工作(应该不是我猜的问题)
  • 这不能以用户为中心,管理员需要成为CRUD(或通过ldap导入)用户和组的唯一权限
  • 当配置完成后,我们必须能够通过LDAP进行身份验证

我总是试着密切关注我的问题,所以请随时询问更多信息.另外,作为答案中我正在寻找的内容的总结."你应该/不应该使用xyz,这就是为什么".

有关asp.net会员提供商和角色管理的链接非常受欢迎,我发现的大部分内容都是5年以上.

c# asp.net authentication authorization

12
推荐指数
2
解决办法
5306
查看次数

JQuery委托方法不起作用

我试图在我使用DataTables.Net插件包装的网格上使用委托方法.我最初有这个代码按预期工作.

    $("#myGrid tbody tr").click(function() {
        var id = $(this).children('td').eq(0).text();
        alert(id);
    });
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改分页大小,则较新的行没有调用该函数的click事件.我决定新的JQuery委托方法应该完全符合我的要求; 但是,它对任何tr元素都没有任何作用.

任何人都可以解释为什么这不起作用:

    $('#myGrid tbody').delegate('tr', 'click', function() {
        var id = $(this).children('td').eq(0).text();
        alert(id);
    }); 
Run Code Online (Sandbox Code Playgroud)

我尝试了选择器的不同组合,没有一个让它工作.

谢谢Paul Speranza

javascript jquery delegates javascript-events

11
推荐指数
2
解决办法
2万
查看次数

如何让Hudson通过代理进行更新

我们运行带有身份验证的公司代理,我们正在运行Hudson作为我们的CI平台.Hudson可以到外界告诉哪些插件需要更新,但是当我们告诉Hudson将更新下载到插件时,我们会收到以下错误.

java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied.  )"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:603)
at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:812)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at …
Run Code Online (Sandbox Code Playgroud)

configuration proxy continuous-integration hudson

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

C#中的流重用

我一直在玩我认为简单的想法.我希望能够从某个地方(网站,文件系统,ftp)读取文件,对其执行一些操作(压缩,加密等),然后将其保存在某个地方(某处可能是文件系统,ftp或其他) .这是一个基本的管道设计.我想要做的是读入文件并将其放入MemoryStream,然后对MemoryStream中的数据执行操作,然后将该数据保存在MemoryStream中的某处.我以为我可以使用相同的Stream来做到这一点,但遇到了几个问题:

  1. 每次我使用StreamWriter或StreamReader时,我需要关闭它并关闭流,以便我不能再使用它了.这似乎必须有一些方法来解决这个问题.
  2. 其中一些文件可能很大,因此如果我尝试一次读取整个内容,我可能会耗尽内存.

我希望能够将每个步骤作为单独的线程启动,并在流上有数据时立即开始压缩步骤,然后一旦压缩在流上有一些压缩数据,我就可以启动保存它(例如).使用C#Streams可以轻松实现这一切吗?有人想过如何做到最好吗?

谢谢,

麦克风

c#

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

什么会被认为是直接的asp.net?(不是mvc而不是webforms)

我知道ASP.NET webforms和ASP.NET MVC之间的区别,我看过很多视频,说明它们都运行在ASP.NET之上(我已经使用过它们).但是,我的问题是,如果没有webforms或mvc.net,如何在ASP.NET之上开发?这是否相当于只有.ASHX文件的项目?

asp.net asp.net-mvc webforms

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

如何将回调添加到jquery验证(在MVC 2中使用时)

我在我的MVC2 Web应用程序中使用jquery进行验证(如此处所述),我想连接jquery验证插件支持的一些回调,如invalidHandler等.

我可以手动编辑MicrosoftMvcJQueryValidation.js并添加我的回调(在__MVC_EnableClientValidation中,在options变量中)但我正在寻找一种更好的方法,因为该文件被重复使用,我不想创建一次性副本.

手动将invalidHandler(etc)回调添加到表单验证的方法正是我需要的.显然,这通常是在第一次调用validate()时通过选项完成的,但由于Microsoft控制该特定部分,这不是一个选项.

javascript asp.net jquery jquery-validate asp.net-mvc-2

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

页面加载上的AJAX不是一件坏事吗?

我在书呆子晚餐和其他网站上看过这个.在页面加载(在JavaScript中,通过浏览器),AJAX请求将从提供初始页面的同一服务器获取一些数据.数据量很小,没有任何技术限制,否则会阻止他们首先提取数据.

这不是一件坏事吗?这似乎浪费了一个AJAX调用,因为他们可以将这些数据作为JavaScript与页面的其余部分一起呈现.

我的银行使用AJAX来提取信息,以构建"转账"表格的表格元素.这个信息是几千字节,一个AJAX请求似乎有点过分.

在书呆子晚餐中,至少在我看到的MIX09视频中,他们正在查询(通过AJAX)一组晚餐,以便在页面加载时在地图控件上呈现.

我可以理解,如果我们讨论的是大量的数据,否则需要花费很长时间才能下降,但如果它低于10-15kb,那么用标记拉下数据不是更好吗?他们这样做是为了避免缓存数据吗?

编辑:我建议的是,不是打开一个AJAX调用服务器来下载客户端onload上的json数据,只需让asp.net(或其他)渲染页面内容中的json,当它呈现其他所有内容时.我只是觉得需要指出这一点,因为实际的客户端代码将完全相同,除了json变量的来源.

javascript ajax

7
推荐指数
2
解决办法
3470
查看次数

为什么toString和hasOwnProperty(等)不会出现在JavaScript中的for-in循环中?

我和其他开发人员谈论hasOwnProperty以及如何在javascript中使用for-in循环,他有一个很好的问题.当你进行for-in循环时,为什么toString,hasOwnProperty和其他内置方法不会出现在循环中?

javascript foreach hasownproperty

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