我有一个ASP.NET 3.5 Web服务(旧学校SOAP,而不是WCF)在IIS 6.0中设置相同的两台服务器上运行.身份验证/访问控制设置如下:
在其中一个Web方法中,我需要获取请求用户的身份并验证它是否在某个Active Directory组中.所以,web方法中的第一行代码是这样的:
var requestUser = HttpContext.Current.Request.LogonUserIdentity.Name;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,两台服务器之间的结果不同.Server1按预期工作,生成domain\UserId.但是,Server2生成Server2\IUSR_SERVER2.有谁之前经历过这个吗?我确实找到了这个问题,但我很确定它不适用于客户端,两个服务器都在同一个域中.
根据Heinzi的回复,我在以下<system.web>两个web.config文件中添加了以下内容:
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
现在,Server1的行为相同,因为它的行为与我想要的一样.但是,Server2抛出401.2:Unauthorized错误:
'/'应用程序中的服务器错误.
访问被拒绝.描述:访问提供此请求所需的资源时发生错误.可能未配置服务器以访问请求的URL.
错误消息401.2.:未授权:由于服务器配置登录失败.验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面.请与Web服务器的管理员联系以获取其他帮助.
版本信息:Microsoft .NET Framework版本:2.0.50727.3603; ASP.NET版本:2.0.50727.3053
我正在使用jqGrid 4.4.0和内联编辑.为了这个问题,我的网格有四列:一个ID列(SomeGridRowId),一个带有jQuery自动完成(自动完成)的文本列,一个单字符文本列(SingleChar)和一个隐藏boolean列(CanEditSingleChar).我需要根据列的值启用或禁用单个字符列的编辑CanEditSingleChar.我已经使用onSelectRow和处理现有行setColProp,但由于某种原因,我不能让它在新插入的行上正确行为.如果我添加新行并从自动填充中选择一个值,则该SingleChar列始终不可编辑.我使用Chrome和IE开发人员工具逐步完成了Javascript; 列值和属性设置正确,但SingleChar列的editable属性不反映这一点.
我为巨大的代码片段道歉,但我不想遗漏任何东西.
$("#coolGrid").jqGrid({
url: '@Url.Action("GetCoolGridData")',
postData: {
someId: function () { return $("#someId").val(); },
otherStaticArg: function () { return 1; }
},
datatype: 'json',
mtype: 'POST',
loadonce: true,
cellsubmit: 'clientArray',
editurl: 'clientArray',
scroll: true,
pager: $("#coolGridPager"),
rowNum: 200,
sortname: 'SomeGridRowId',
sortorder: 'asc',
viewrecords: true,
height: '100%',
colNames: ['SomeGridRowId', 'CanEditSingleChar', 'Autocomplete', 'SingleChar'],
colModel: [
{ name: 'SomeGridRowId', index: 'SomeGridRowId', hidden: true },
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用带有SP1的Visual Studio 2008 Team System,并且我注意到每当我停止调试应用程序时IDE会挂起几(10-15)秒的烦人倾向.起初我认为这只发生在WPF应用程序中,但我也观察到Windows窗体应用程序和ASP.NET站点中的行为.我已根据之前的帖子对选项进行了一系列更改,并完成了详尽的Google/MSDN搜索,但仍未找到阻止此操作的方法.
有人有主意吗?
@ korona - 不,没有解决它.谢谢你的建议.
ProcMon中的更多研究显示了这个有趣的消息,不确定它是否相关:
8:45:46.6790857 AM WindowsFormsApplication1.vshost.exe 7684 FASTIO_CHECK_IF_POSSIBLE C:\WINXP\Microsoft.NET\Framework\v2.0.50727\CONFIG\enterprisesec.config.cch FAST IO DISALLOWED Operation: Read, Offset: 48, Length: 12
8:45:46.6793569 AM WindowsFormsApplication1.vshost.exe 7684 ReadFile C:\WINXP\Microsoft.NET\Framework\v2.0.50727\CONFIG\enterprisesec.config.cch FAST IO DISALLOWED Offset: 508, Length: 12
Run Code Online (Sandbox Code Playgroud)
重复几次,如数百次,然后切换到不同的路径:
8:45:46.7470314 AM WindowsFormsApplication1.vshost.exe 7684 FASTIO_CHECK_IF_POSSIBLE D:\documents and settings\myusername\Application Data\Microsoft\CLR Security Config\v2.0.50727.42\security.config.cch FAST IO DISALLOWED Operation: Read, Offset: 48, Length: 12
8:45:46.7472187 AM WindowsFormsApplication1.vshost.exe 7684 ReadFile D:\documents and settings\myusername\Application Data\Microsoft\CLR Security Config\v2.0.50727.42\security.config.cch FAST IO DISALLOWED Offset: 508, Length: 12 …Run Code Online (Sandbox Code Playgroud) 我在ASP.NET MVC 4网站jQuery 1.7.2中使用jqGrid 4.3.2.应用程序中有几个地方使用jqGrid.我现在的一般设置是所有编辑都在本地(loadonce: true和clientArray)内联导航和编辑完成,并且所有网格数据都通过AJAX调用在表单提交时发布到服务器.我在行编辑和它们承诺的事件中遇到了一些困难.您可以在此处查看网站(以及来源,正在进行的总工作,不错).如果添加或编辑行,然后单击页面上的其他位置,则不会保存行编辑.用户必须在行编辑期间的某处按Enter键以保存行.
我有一个ASP.NET MVC 4视图,它<div>通过JQuery AJAX调用动态地将两个嵌套的部分加载到元素中.每个部分都有一大堆自己的Javascript.为了让它全部正常工作,我目前拥有success每个AJAX调用中的所有Javascript :
function LoadPartial(someImportantId) {
$.ajax({
url: '@Url.Action("LoadThePartial")' + '?id=' + someImportantId,
type: 'POST',
async: false,
success: function (result) {
$("#partialContainerDiv").html(result);
//here there be great piles of javascript
}
});
}
Run Code Online (Sandbox Code Playgroud)
由于这些部分中有两个,每个需要数百行Javascript,因此主视图文件变得难以管理.我很乐意把所有这些脚本代码放到一个单独的.js文件中,但我仍然对Javascript很新,我非常依赖Chrome的脚本调试工具,而且我很难搞清楚如何(以及如果)我可以加载此脚本文件.我试过了:


有没有办法我可以为AJAX加载的部分单独的Javascript文件,仍然能够调试客户端上的部分?更重要的是,我在哪里将所有这些Javascript用于AJAX加载的部分视图?
我对 MySQL 表有一个非常简单的 Knex 查询来查找列的最大值id:
const maxId = await knex('some_table').max('id').first()
Run Code Online (Sandbox Code Playgroud)
但这会返回一个TextRow具有单个、名称奇怪的属性的对象。来自console.log:
TextRow { 'max(`id`)': 99 }
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以让我获取该值,或者我是否必须使用像这样的对象属性表示法:
const idValue = maxId['max(`id`)']
Run Code Online (Sandbox Code Playgroud) 假设我有一个 pm2 进程,每 5 分钟运行一次,运行时间不到一秒:
pm2 start ./some-node-script.js --name some-node-script --cron "*/5 * * * *" --no-autorestart
Run Code Online (Sandbox Code Playgroud)
现在假设我想完全停止作业的执行。如果我发出pm2 stop some-node-script,我会收到此警告:
[PM2][WARN] App some-node-script stopped but CRON RESTART is still UP */5 * * * *
Run Code Online (Sandbox Code Playgroud)
然后该作业将在接下来的 5 分钟间隔内再次执行。有什么办法可以阻止 cron 作业再次执行吗?我已经尝试过pm2 kill,但这会杀死 pm2 管理的所有工作。
我有这样的数据库表:

A Task可以映射到a Module,或者根本不映射(0 ... 1).我首先使用Entity Framework数据库,当我从数据库生成模型时,Task实体将Modules作为集合(0或更多)来实现.所以我打开了我的EDMX并将Task上的"Modules"导航属性更改为0 ... 1.

现在,当我尝试编译时,我收到此错误:
错误3003:从第1241行开始映射片段时出现问题:给定关联结束成员任务的基数,它应该映射到表TaskModule的键列.修复映射或更改此末尾的多重性.
我不明白我需要做些什么来解决这个问题.我查看了关联细节,看不出问题.我知道我可能错过了一些愚蠢的东西,但我完全陷入困境.协会财产:

Visual Studio 2010 SP1,实体框架4.3.1.0,SQL Server 2008 R2.
entity-framework cardinality model-associations entity-framework-4.3
我正在尝试将我的MVC4应用程序从ASP.NET成员资格迁移到新的SimpleMembership,并且遇到了密码重置问题.在我的登录视图中,我有"忘记密码"超链接,该超链接对发送带有重置密码超链接的电子邮件的操作执行AJAX帖子(基于MSDN指南):
[HttpPost]
[AllowAnonymous]
public ActionResult ForgotPassword(string userName)
{
//get the user from database, validate it exists, etc.
var token = WebSecurity.GeneratePasswordResetToken(userName);
var resetLink = "<a href='" + Url.Action("ResetPassword", "Account", new {un = userName, rt = token}, "http") + "'>Reset Password</a>";
//send the email
return Json(new {result = "Email sent."});
}
Run Code Online (Sandbox Code Playgroud)
这很好,但出于某种原因,当我尝试使用重置密码链接时,我被重定向到登录屏幕,Fiddler显示401-Unauthorized.我已经尝试将链接复制/粘贴到浏览器地址栏中,并创建一个带有锚标记的垃圾HTML文件,但结果仍然是401.这是重置密码操作(也在来自的帐户控制器中) MVC4模板):
[HttpPost]
[AllowAnonymous]
public ActionResult ResetPassword(string un, string rt)
{
var model = new ResetPasswordViewModel {UserName = un, ResetToken = rt};
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试删除该HttpPost属性,但这也产生了401.我在这里缺少什么? …
asp.net-mvc asp.net-mvc-areas asp.net-mvc-4 simplemembership
今天我从共享的 Git 存储库中提取了最新版本,并注意到我团队中的另一个开发人员添加了一个 NPM 包。所以我跑了npm install,然后看到我的package-lock.json文件已经改变了。当我深入研究更改的内容时,我发现"dev": true已从几个包描述中删除,例如:
"some-package": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/whatever/-/some-package-1.0.0.tgz",
"integrity": "some-big-hash",
"dev": true
},
Run Code Online (Sandbox Code Playgroud)
该"dev": true是走了之后npm install,从几个包。我应该担心 NPM 这样做了吗?我不希望为生产安装这些软件包。
这个问题"dev": true有点相关,但还没有一个好的答案,我仍然想知道我是否做错了什么。为什么 NPM 要删除它?
jquery ×3
jqgrid ×2
asp.net ×1
asp.net-mvc ×1
cardinality ×1
debugging ×1
iis-6 ×1
javascript ×1
knex.js ×1
mysql ×1
npm ×1
npm-install ×1
pm2 ×1
web-services ×1