我们在ASP.NET MVC 4应用程序中执行了一些代码.该应用程序托管在Windows Server 2012上的IIS中.应用程序池的标识不是标准用户,而是特定用户,例如iis-appPool-username下面提到的.该应用程序在.NET 4.0中运行,具有为托管管道设置的集成模式.
DirectoryEntry对象中指定用户名,我都尝试了它. AuthenticationTypes.ReadonlyServer,因为它击中一个只读的域控制器.在我指定LDAP路径和Readonly类型之前,它为控制台应用程序提供了相同的错误.但是,虽然控制台应用程序现在可以正常工作,但IIS应用程序却没有代码如下.
// also tried: var searchRoot = new DirectoryEntry(@"LDAP://DC=subdom,DC=ourdomain,DC=com");
var searchRoot = new DirectoryEntry(@"LDAP://DC=subdom,DC=ourdomain,DC=com", @"domain\iis-appPool-username", "password");
searchRoot.AuthenticationType = AuthenticationTypes.ReadonlyServer;
using (var searcher = new DirectorySearcher(searchRoot))
{
searcher.Filter = string.Format("(&(objectClass=group)(sAMAccountName={0}))", "someGroupName");
searcher.PropertiesToLoad.Add("distinguishedName");
// This is where the failure happens
var result = searcher.FindOne();
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪的错误如下所示:
System.Runtime.InteropServices.COMException (0x8007054B):
The specified domain either does not exist or could not be contacted.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at …Run Code Online (Sandbox Code Playgroud) 我需要在MS SQL Server 2005中索引我的表上的varchar字段,但我不清楚如何这样做.如果我尝试在字段上添加非聚集索引,则表示"mytable"表中的"列'xxxx'的类型无效,无法用作索引中的键列"
我的表有一个自动增加的int ID,它被设置为表中的主键.如果我将此属性设置为索引,然后将我的varchar列添加为"包含列",则索引将完成.但我不确定这是我想要的 - 我希望能够仅基于varchar字段搜索表,而我对索引的理解是必须提供所有索引元素以实际查看查询中的加速,但我不想要包含int ID(因为我不知道它是什么,在给定的查询时).
我试图做错了吗?ID +我的varchar作为一个包含的列能完成我想要的吗?
我们在IIS 6服务器上有19个网站,其中许多都有许多"虚拟"目录.我试图将整个事务迁移到另一台服务器上的IIS 7.
按照http://learn.iis.net/page.aspx/427/migrate-a-web-site-from-iis-60-to-iis-70/上的说明,我尝试了以下命令行执行:
msdeploy -verb:sync -source:metakey=lm/w3svc -dest:package=D:\Temp\Sites.zip > D:\temp\WebDeployPackage.log
Run Code Online (Sandbox Code Playgroud)
它似乎工作,直到我得到"磁盘上没有足够的空间"错误.D驱动器,你会注意到它是包的目标位置,并且日志有足够的空间(网站的所有资源都是大约5GB,驱动器有200+).虽然C盘的尺寸有限(6Gb),但这可能是问题所在.
无论如何,我认为最好的办法是尝试仅迁移设置/配置,而不是实际资源.我们可以使用我们的NAnt构建脚本轻松地将资源部署到新服务器,因此这不是问题.然而,移动所有正确的配置将是手动执行的挑战.
那么,有没有办法使用msdeploy(或任何其他工具?)导出/打包IIS 6服务器的配置/选项?
ASP.NET 2.0,在FF3和IE7中测试.
当我从文本框中点击"输入"按钮时,会触发页面中第一个ImageButton的相应"OnClick"事件.如果我删除该图像按钮,它将触发页面上的下一个ImageButton OnClick事件.
从FireBug控制台,如果我使用JavaScript提交表单,则不会发生这种情况.但无论出于何种原因,从文本框中输入,都会触发无关的ImageButton事件.
我发现这个问题有类似的问题,但是由于ImageButtons没有"UseSubmitBehavior"属性,因此该解决方案的建议答案不起作用.
我不明白为什么这个事件会被解雇.如果我查看Request.Form,我可以看到__EVENTTARGET是空的,它实际上是发布整个表单内容(我的所有文本框),但也包括imageButton.x和imageButton.y键/值对.
为什么是这样?我想我可以通过javascript检测来自这些文本框的"输入"按键,但我过去的经验是这种行为在浏览器之间变化很大.有什么建议?
考虑您希望为一个且仅一个通知订阅事件的情况.第一次通知到达后,您取消订阅所有未来事件.以下模式会出现任何内存问题吗?它可以工作,但我不确定自引用闭包是否可以使内存中的内容长于预期.
public class Entity
{
public event EventHandler NotifyEvent;
}
// And then, elsewhere, for a listen-once handler, we might do this:
Entity entity = new Entity();
Action<object, EventArgs> listener = null;
listener = (sender, args) =>
{
// do something interesting
// unsubscribe, so we only get 1 event notification
entity.NotifyEvent -= new EventHandler(listener);
};
entity.NotifyEvent += new EventHandler(listener);
Run Code Online (Sandbox Code Playgroud)
请注意,您必须声明'listener'并指定一个值(null).否则编译器会抱怨"使用未分配的局部变量listener"
不确定我是否遗漏了一些明显的东西,因为这是我第一次尝试使用原始DOM apis(而不是通过jQuery等).
考虑以下代码,我使用document.createElement手动创建TBODY,然后设置它的innerHTML.
<table id="myTable">
</table>
<script type='text/javascript'>
var row = "<tr><td><span>col1</span></td><td>col2</td></tr>";
var render = function(){
var table = document.getElementById('myTable');
var tbody = document.createElement('tbody');
tbody.innerHTML = row;
table.appendChild(tbody);
console.log(tbody.innerHTML);
};
$(document).ready(function(){
render();
});
</script>
Run Code Online (Sandbox Code Playgroud)
在Chrome和FF中,这就像我想的那样 - 给我一张桌子等等.但是,在IE9中,似乎内部HTML中的第一个HTML标签被删除了.即,而不是
<TR><TD><SPAN>col1</SPAN></TD><TD>col2</TD></TR>
Run Code Online (Sandbox Code Playgroud)
我明白了
<SPAN>col1</SPAN></TD><TD>col2</TD></TR>
Run Code Online (Sandbox Code Playgroud)
以上的JSFiddle:http://jsfiddle.net/pAJwu/
知道这里发生了什么吗?
<tr>
<td><div class="click">a</div></td>
</tr>
<tr>
<td><div class="click">b</div></td>
</tr>
<tr>
<td><div class="click">c</div></td>
</tr>
<tr>
<td><div class="click">d</div></td>
</tr>
<tr>
<td><div class="click">e</div></td>
</tr>
<tr>
<td><div class="click">f</div></td>
</tr>
<tr>
<td><div class="click">g</div></td>
</tr>
<tr>
<td><div class="click">h</div></td>
</tr>
<tr>
<td><div class="click">i</div></td>
</tr>
<tr>
<td><div class="click">j</div></td>
</tr>
<tr>
<td><div class="click">k</div></td>
</tr>
<tr>
<td><div class="click">l</div></td>
</tr><tr>
<td><div class="click">m</div></td>
</tr>
<tr>
<td><div class="click">n</div></td>
</tr>
<tr>
<td><div class="click">o</div></td>
</tr>
</table>
$('.click').click(function(){
$(this).addClass('red');
})
Run Code Online (Sandbox Code Playgroud)
现场:http://jsbin.com/ibofis/1/edit
这工作正常,但我想为这个addClass添加3个下一个元素.
例如,如果我点击c,那么类.red应该添加:c,d,e和f.
我该怎么做?
这真让我抓狂.我正在尝试在我的PHP Web应用程序的Windows框中执行命令行语句.它运行在Windows XP,IIS5.1上.Web应用程序运行正常,但我不能让@exec()使用特定的contactenated变量.我的命令结构如下:
$cmd = ($config->svn." cat ".$this->repConfig->svnParams().quote($path).' -r '.$rev.' > '.quote($filename));
Run Code Online (Sandbox Code Playgroud)
当它生成以下字符串时,此命令不能如上所述:
svn --non-interactive --config-dir /tmp cat "file:///c:/temp/test/acccount/dbo_sproctest.sql" -r 1 > "C:\Inetpub\sites\websvn\temp\wsv5B45.tmp"
Run Code Online (Sandbox Code Playgroud)
如果我将其复制/粘贴到我自己的命令行,它可以正常工作.
如果我硬编码相同的路径而不是添加变量,它的工作原理!我已尝试使用和不带引号的文件名.我在整个命令周围尝试过和没有引号.我试过其他目录.我已经尝试将输出参数传递给exec(),它返回空(Array()).我已经尝试将命令错误流的输出重定向到文件,并且永远不会创建错误输出文件.
我唯一可以理解的是,exec()默默地失败了.我到底是做错了什么?如果我硬编码文件路径,使用相同的目录结构和文件名,它工作正常.如果我不这样做,那就没有.
也许文件路径中的斜杠()没有正确转义,但是当我用单引号手动执行它们时,它们不被视为转义序列?
更新:
我接过了执行官的@ off,但仍然没有看到任何错误.
我给了SVN的完整路径,但仍然没有运气.应该注意的是,只要我手动指定cat的文件目的地,该命令就可以使用非完整路径SVN.
更新2:RE:Kieth
我通过尝试两个来调用exec:
exec($cmd);
Run Code Online (Sandbox Code Playgroud)
要么
exec($cmd, $out);
Run Code Online (Sandbox Code Playgroud)
我的php.ini已经有safe_mode = 0.
我添加了error_reporting(E_ALL); 并没有看到任何新的东西
如果我回复(或打印)我的执行电话,我实际上并没有做任何事情
如果我在包含输出变量时回显(或print_r)我的exec调用,我得到一个空的arr
更新3
我试过escapeshellcmd和escapeshellarg都没有用(虽然好主意).
我应该补充说,该文件是通过调用创建的
tempnam("temp", "wbsn");
Run Code Online (Sandbox Code Playgroud)
事实上,如果我手动指定字符串而不是让它由tempname生成,它的工作正常似乎表明问题的根源,但我无法弄清楚如何.我对手动字符串与生成的字符串进行了比较,然后将其作为匹配返回.
例如:
.foo { font-family: ; font-size: ; }
Run Code Online (Sandbox Code Playgroud)
我在IE9和Chrome中看到了不同的行为.IE9似乎使用它来将这些属性归零(尽管此刻此行为在我的不同页面中并不一致).
在Chrome中,它似乎只是忽略它.
什么是真正的预期行为?这甚至是有效的CSS吗?