我有一个镀铬扩展,在打开镀铬时运行良好.问题是铬应用程序关闭时.我需要使扩展程序始终运行 - 打开或关闭Chrome浏览器.是否有任何方法可以使扩展即使在Chrome关闭时也能运行?
我在IIS 7上托管了一个Web应用程序,使用Oracle.DataAcess.dll for .NET来执行与Oracle数据库的连接和查询.在上周,我们突然遇到了这个组件抛出的大量错误,说:"连接请求超时了."
经过几个小时的调试,我发现错误实际上是说连接请求已超时,并抛出一个代码为-1000的错误(oracle.DataAccess,没有抛出ORA-错误).在Oracle数据库中,我看到该机器只有一个连接,并且处于"非活动"状态.虽然只有一个连接,但在调试时它实际上在尝试打开连接时超时.
我们不使用连接池策略,但正如我在调试模式中看到的那样,有一个默认连接池(即使没有指定值)表示最大连接数为100,超时时间为15秒,并且生命周期为0.这意味着该计算机上的应用程序可以处理100个连接.
话虽如此,我无法弄清楚为什么我得到"连接请求超时".错误,错误代码= -1000,当我的应用程序可以创建多达100个连接时(根据默认连接池的设置),但我的数据库只显示几个连接(当我的应用程序有一个连接时也发生了5个连接 - 满分100).
我会注意到我能够在回收我的应用程序之后专门解决这个问题,但这已经不止一次发生,所以这不是解决方案...
这是我缺少的东西吗?
我的应用程序实际上使用的连接比我看到的多吗?
*更新: 我在调试期间发现Oracle.DataAccess的'PopulatePool'方法中存在很多线程,而且许多其他线程都停留在'WaitForRegularConnection'方法中...
是否可以打开文件系统/网络驱动器上的本地文件(c:\abc.xlsx或p:\abc.xlsx)?
如果是这样,是否可以通过我为 Google Chrome 创建的自定义扩展来完成此操作?
我创建了一个使用本地消息传递到主机的扩展。
扩展的 manifest.json 是:
{
"manifest_version": 2,
"version": "1.0",
"name": "Native Messaging Example",
"description": "Send a message to a native application",
"permissions": [
"nativeMessaging"
],
"browser_action": {
"default_popup": "popup.html"
}
}
Run Code Online (Sandbox Code Playgroud)
popup.html:
<html>
<head>
<script src="./main.js"></script>
</head>
<body>
<button id="buttonToPress">Press</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
main.js 文件:
var port = null;
function connect() {
port = chrome.runtime.connectNative('com.google.chrome.example.echo');
port.onMessage.addListener(function(message) {
alert(message);
port.disconnect();
});
port.onDisconnect.addListener(function() {
port = null;
alert(chrome.runtime.lastError.message);
});
var message = {
'filePath': 'C:\\Users\\username\\Desktop\\themes\\Wallpaper\\Architecture\\img13.jpg'
};
port.postMessage(message);
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('buttonToPress').addEventListener('click', connect); …Run Code Online (Sandbox Code Playgroud) javascript json google-chrome-extension chrome-native-messaging
我使用的是 NLog 4.5.2 版,我正在尝试使用${activityid}LayoutRenderer。我已按照 NLog 教程页面上的说明进行操作:NLog ActivityId
如前所述,我System.Diagnostics.Trace.CorrelationManager.ActivityId通过设置实例化了:System.Diagnostics.Trace.CorrelationManager.ActivityId = Guid.NewGuid()在Application_BeginRequest事件中。
老实说,它工作得很好,但是在我将它部署到不同的服务器后,我注意到${activityid}没有写入。
经过一番搜索和调试,我遇到了一个奇怪的情况。在Application_BeginRequest事件中的代码行中,ActivityId设置得恰到好处,但是当真正的 http post 方法发生时,我看到ActivityId具有空 guid (0000-00...) 的值。
我注意到的一件事是,在发送带有请求数据的 POST 请求时,ActivityId 是空的(再次 - 仅发送到远程服务器)。
有人可以帮我解决这个问题吗?我似乎无法弄清楚。
更新#1:
我在 Windows Server 2012 上检查了相同版本的应用程序并且它工作正常(我的问题目前在 Windows Server 2008 R2 上)。
更新#2:
我找不到解决方案,说明为什么只在 Windows Server 2008 R2 上而不是在本地(Windows 7)或 Windows Server 2012 上发生这种情况,但我设法找到了解决方法/不同的解决方案。
相反,实例化的System.Diagnostics.Trace.CorrelationManager.ActivityId在Global.asax.cs中类,在Application_BeginRequest事件中,我创建了一个新的DelegatingHandler和实例化System.Diagnostics.Trace.CorrelationManager.ActivityId时的的SendAsync方法DelegatingHandler
在这种情况下,ActivityId为每个 http 请求生成(相同),但现在当请求是包含数据的 …