我正在努力尝试将ASP.NET应用程序从Server 2003(和IIS6)移植到Server 2008(IIS7).
当我尝试访问浏览器上的页面时,我得到了这个:
'/'应用程序中的服务器错误.
安全例外
说明:应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别.
异常详细信息:System.Security.SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全性
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[SecurityException:找不到源,但无法搜索部分或全部事件日志.无法访问的日志:安全.]
System.Diagnostics.EventLog.FindSourceRegistration(String source,String machineName,Boolean readOnly)+562 System.Diagnostics.EventLog.SourceExists(String source,String machineName)+251
[剪断]
这些是我为尝试解决它而做的事情:
授予"Everyone"对密钥的完全访问权限HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security.这很有效.但我自然不能在生产中这样做.所以我在运行应用程序几分钟后删除了"Everyone"权限,错误重新出现.
我在应用程序日志和安全日志中创建了源代码(我通过regedit对其进行了验证)在安装期间使用提升的权限,但错误仍然存在.
我在应用程序中给了应用程序一个完整的信任级别web.config(并使用appcmd.exe),但无济于事.
有没有人能够了解这里可以做些什么?
PS:这是对这个问题的跟进.我按照给出的答案但没有用(见上面的#2).
所以场景如下:
我有一个Web服务的多个实例,它将一大块数据写入Azure存储.我需要能够根据收到的时间将blob分组到容器(或虚拟目录)中.偶尔(最糟糕的每一天)旧的blob将被处理然后被删除.
我有两个选择:
选项1
我创建了一个名为"blobs"的容器(例如),然后将所有博客存储到该容器中.每个blob将使用目录样式名称,目录名称是接收时间(例如"hr0min0/data.bin","hr0min0/data2.bin","hr0min30/data3.bin","hr1min45/data.bin" ",...,"hr23min0/dataN.bin"等 - 每隔X分钟一个新目录.处理这些blob的事情将首先处理hr0min0 blob,然后处理hr0minX等等(并且在处理时仍然会写入blob).
选项2
我有许多容器,每个容器都有一个基于到达时间的名称(所以首先是一个名为blobs_hr0min0的容器,然后是blobs_hr0minX等),容器中的所有blob都是到达指定时间的那些blob.处理这些博客的事情将一次处理一个容器.
所以我的问题是,哪个选项更好?选项2是否为我提供了更好的并行化(因为容器可以位于不同的服务器中),或者选项1是否更好,因为许多容器可能导致其他未知问题?
我有一个剃须刀助手方法需要接受一个Func<>将返回一些HTML内容打印输出.这是我原来的:
@helper node(string title, Func<HelperResult> descriptions)
{
....
<div>@descriptions()</div>
....
}
@node("title",
new Func<HelperResult>(() =>
{
return new HelperResult(
@<text>
<span>"desc1"</span>
<span>"desc2"</span>
</text>);
}))
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的文字永远不会打印出来.也没有错误.
所以我学习了内联帮助器,并将调用方法更改为:
@node("title",
@<text>
<span>"desc1"</span>
<span>"desc2"</span>
</text>)
Run Code Online (Sandbox Code Playgroud)
但是现在我收到编译错误说
"委托'System.Func'不接受1个参数".
但我并没有传递任何论点.
因此,如果我将其更改为Func<object,HelperResult>然后使用它调用它@descriptions(null)我得到以下错误:
"如果没有先将lambda表达式转换为委托或表达式树类型,则不能将lambda表达式用作动态调度操作的参数"
我确定我在某处出了点问题,但我不确定它到底是什么.
编辑:我想我可能已经解决了这个问题,但它引入了一些其他问题.
我做的是在传递动态方法之前施放lambda.我猜这就是错误试图说的:
@node("title",
((Func<dynamic, HelperResult>)(@<text>
<span>"desc1"</span>
<span>"desc2"</span>
</text>))
Run Code Online (Sandbox Code Playgroud)
这有效,它可以span正确地打印出标签.不幸的是,在调用它时我必须传入一个无用的参数Func.
现在我的问题是我的真正功能不仅仅是写一些跨度.它更像是这样的:
@node("title",
((Func<dynamic, HelperResult>)(@<text>
<span>@Helpers.Format(resource.Description,"item")</span>
</text>))
Run Code Online (Sandbox Code Playgroud)
哪里@Helpers.Format是另一个助手和资源是从页面模型(动态)变量.
当然现在代码运行但没有打印出来(在<span>标签内).我在我的Format辅助函数中放了一个断点,它命中它并且所有参数都被正确设置,所以我不确定它为什么输出不正确.同样,如果我只是将其更改为resource.Description,那么仍然没有输出.
由于它在这个上下文之外运行良好,我想知道Razor的内联助手不能捕获外部变量吗?
我安装了Windows Azure SDK 1.6和Azure工具.我有一个Web角色(有两个端点,http为80端口,https为端口443),只有一个Web角色实例运行(用于测试目的).
当我上周从Visual Studio运行它进行调试时,它运行了模拟器,将其附加到IIS,绑定为127.0.0.1:80,一切都很好.
但截至昨天,我一开始尝试将其绑定到127.255.0.1:82并且它停止使用此错误(来自Visual Studio):
将调试器附加到URL" http://127.255.0.0:82 " 的iis工作进程时出错
现在,如果我手动转到IIS并更改绑定,我可以通过浏览器访问该站点,但显然我无法通过VS调试它.
为什么Visual Studio会这样做?是什么让它从上周发生了变化(我只进行了代码更改并且我已将它们评论出来)?
编辑:我知道这个博客,但我的问题似乎有所不同,因为一个原因我在事件日志中没有错误.就像我在IIS中手动更改绑定时提到的那样,我可以正确访问该站点,以便正确配置应用程序池.
Edit2:我有以下几组:
<compilation debug="true" targetFramework="4.0" />
Run Code Online (Sandbox Code Playgroud)
我的云项目也设置为启动项目.
我的客户端正在使用org.apache.hbase:hbase-client:2.1.0"并且服务器正在运行 1.2.0-cdh5.11.1(1.2.0-cdh5.11.0在替代测试集群中)。
我的客户端非常简单,它Connection在启动时实例化了一个类(由于Apache的建议,该类很繁重且线程安全,因此在线程之间共享)。然后,对于每个请求,它创建一个Table类并执行一个.exists(new Get(rowKey))操作。
像这样:
Connection conn = ConnectionFactory.createConnection(hbaseConfig);
Run Code Online (Sandbox Code Playgroud)
和
final Table table = conn.getTable(tableName);
return table.exists(new Get(context.getKey()));
Run Code Online (Sandbox Code Playgroud)
大多数情况下,最糟糕的情况是,到HBase的请求延迟时间为40ms。通常,它会在10毫秒左右完成。
但是,我们注意到偶尔的请求大约需要5000毫秒(5秒)的时间-但仍能成功完成!
偶尔,我的意思是每分钟大约1个请求(每分钟总共600个请求,所以速率很小)。但这很稳定。
这些几乎恰好在5s(+/- 100-200ms)左右。那是奇怪的部分。这不是一个峰值。
起初,我怀疑这是客户端的错误配置,我需要设置更严格的超时,因此我设置了以下内容:
hbaseConfig.set(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 1);
hbaseConfig.set(HConstants.HBASE_CLIENT_PAUSE, "50");
hbaseConfig.set(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, "2000");
hbaseConfig.set(HConstants.HBASE_RPC_TIMEOUT_KEY, "1500");
hbaseConfig.set(HConstants.HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY, "2000");
hbaseConfig.set(HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD, "1500");
hbaseConfig.set(HConstants.ZOOKEEPER_RECOVERABLE_WAITTIME, "2000");
hbaseConfig.set(HConstants.ZK_SESSION_TIMEOUT, "2000");
hbaseConfig.set("zookeeper.recovery.retry", "1");
hbaseConfig.set("zookeeper.recovery.retry.intervalmill","200");
hbaseConfig.set("hbase.ipc.client.socket.timeout.connect", "2000");
hbaseConfig.set("hbase.ipc.client.socket.timeout.read", "2000");
hbaseConfig.set("hbase.ipc.client.socket.timeout.write", "2000");
Run Code Online (Sandbox Code Playgroud)
换句话说,5000ms超过了全局超时时间(如中所述HConstants.HBASE_CLIENT_OPERATION_TIMEOUT)。
但是我有大约5秒钟才能完成的请求-并且成功完成了。
除了这些超时之外,我从使用更改AsyncConnection为Connection(无论如何都不需要使其异步),并且正在考虑仅GET拨打电话而不是exists。
但是在这一点上,我很沮丧。我没有看到任何财产以及5s的来源。甚至没有超时,它实际上成功了!
有人遇到过吗?有什么方法可以让hbase-client发出指标吗?服务器端指标显示延迟没有增加(扫描指标)。
我这样做是为了好玩(或者4chan说"为了lh lzz")并且如果我在路上学得更好的话.我差不多2年前参加了一个人工智能课程,我非常喜欢它,但我设法忘记了一切,所以这是一种更新的方法.
无论如何,我希望能够在给定一组输入的情况下生成文本.基本上,这将阅读论坛输入(或可能是Twitter推文),然后根据学习生成评论.
现在最简单的方法是使用马尔可夫链文本生成器,但我想要比这更复杂的东西,因为MKC基本上只通过单词顺序学习(在给定输入文本的单词x之后哪个单词更可能出现).我试图看看我能做些什么来让它变得更聪明一些.
例如,我希望它做这样的事情:
这是权衡和从错误部分学习,我不知道如何实现.我想到了人工神经网络(主要是因为我记得很喜欢那一章),但据我所知,它主要用于对事物进行分类(即给出一组有限的选择[x1 ... xn],其中x是给定的输入)没有真正产生任何东西
我甚至不确定这是否可能,或者我应该怎么做才能学习/搞清楚.什么算法最适合这个?
对于那些担心我会将其用作垃圾邮件或向SO提供错误答案的机器人,我保证我不会用它来提供(坏)建议或垃圾邮件以获取利润.我绝对不会发布它对SO的荒谬想法.我打算用它来娱乐.
谢谢!
我有这个:
<h4 class="modal-title" id="exampleModalLabel"> hello </h4>
Run Code Online (Sandbox Code Playgroud)
并且我想使用它提取问候词并将其id分配给php var,但我不知道。如果是输入,会更容易,但是我必须使用其他元素。
这是场景:
我有一个正在运行的Windows服务.OnStart()它设置了一个调用函数的计时器(让我们调用它ProcessEvent()).里面的代码ProcessEvent是一个关键部分,所以只有一个线程可以执行以下操作:
private void ProcessEvent(object sender, ElapsedEventArgs e)
{
lock(lockObj)
{
string[] list = GetList();
Parallel.ForEach(list, item => { ProcessItem(item) });
}
}
Run Code Online (Sandbox Code Playgroud)
ProcessItem 可能需要很长时间.
现在当服务停止时,我OnStop()当前只是停止并处理计时器.但是我注意到即使在服务停止后仍然存在仍在运行的线程ProcessItem().
那么我怎样才能杀死这个程序产生的所有正在运行的线程(主要是由那些产生的线程,Parallel.ForEach还有任何等待锁定的线程ProcessEvent)?
我知道,如果我自己创建了线程,我可以将其设置isBackground为true,并且当进程死亡时它将全部被杀死,但我不会手动创建这些线程.
我有一个我正在构建的HTML电子邮件,它有两个要求:
max-widthCSS属性)我尝试使用以下样式,但它不适用于所有电子邮件客户端或大多数浏览器(Chrome旁边):
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
max-width: 740px;
Run Code Online (Sandbox Code Playgroud)
我知道在IE中,您需要在包含截断元素的所有元素上设置宽度,但我尝试使用max-width并且它不适用.
那么有没有办法获得这种期望的行为,而不是手动将文本截断为某些设定的字符限制?
我正在编写一个使用WiX 3.0的MSI,我正在试图弄清楚如何使其包含除目录中的一些文件以外的所有文件,而无需手动指定每个属性.类似于installshield中的动态拾取.
我正在寻找参考(使用WiX 2.0)的旧安装程序执行以下操作:
我想避免这一步,并想知道是否有一些命令或预处理器指令来实现这个WiX本身?
此外,上面的第一步吐出一些生成的文件(来自工具),然后将其包含在wxs文件中.有没有办法可以效仿呢?
azure ×2
c# ×2
html ×2
.net-4.0 ×1
asp.net ×1
asp.net-mvc ×1
css ×1
css3 ×1
debugging ×1
event-log ×1
generator ×1
hbase ×1
hbase-client ×1
html-email ×1
html-helper ×1
html-parsing ×1
iis-7 ×1
java ×1
kill ×1
lambda ×1
latency ×1
performance ×1
php ×1
plinq ×1
razor ×1
text ×1
windows ×1
wix ×1
wix3.6 ×1