我想计算对我的整个网站进行的访问次数(或访问者,而不是页面请求或点击次数).
我希望将每次访问存储在一个数据库中,以便将来显示一些包含此数据的图形.
此外,我希望它是可靠的,快速的,而不是为每个页面请求轮询到数据库.所以,我想我应该把一些代码放在一些入口点,但我不知道在哪里,而不是在Global.asax事件AppEndRequest中.我猜测会编写SessionStart或SessionEnd事件.
我怎样才能进行此次访问?
我有两个独立的线程F1和F2(确切地说,两个java.util.concurrent.FutureTask实例)并行运行.
F1进行一些处理,然后将结果复制到XML文件中.然后,它重复这些步骤,直到它无关(创建了许多XML文件).F2查看F1输出目录,取一个文件,解析它,并对其执行一些处理.
这非常有效,除了有时F2从文件中获取截断的XML数据.我的意思是一个不完整的XML,其中一些XML节点不存在.问题是它并不总是可再现的,并且被截断的文件并不总是相同的.因此,我认为当F1在磁盘上写入一个文件时,F2正在尝试读取同一个文件.这就是为什么有时我会遇到这种错误.
我的问题:我想知道是否有一些机制锁定(甚至读取)文件F1当前正在写入,直到它完全完成将其写入磁盘,因此在文件解锁之前F2将无法读取它.或任何其他方式来解决我的问题将是受欢迎的!
F1正在以这种方式编写文件:
try {
file = new File("some-file.xml");
FileUtils.writeStringToFile(file, xmlDataAsString);
} catch (IOException ioe) {
LOGGER.error("Error occurred while storing the XML in a file.", ioe);
}
Run Code Online (Sandbox Code Playgroud)
F2正在以这种方式读取文件:
private File getNextFileToMap() {
File path = getPath(); // Returns the directory where F1 stores the results...
File[] files = path.listFiles(new FilenameFilter() {
public boolean accept(File file, String name) {
return name.toLowerCase().endsWith(".xml");
}
});
if (files.length > 0) {
return files[0];
}
return null;
}
// Somewhere in my …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用putty连接到Amazon EC2,但亚马逊提供的密钥被拒绝.我销毁了所有实例和所有密钥对.然后我创建了新的,仍然是同样的问题.
任何人?
谢谢.
我目前有一个SQLTIPS.sql文件,它存在于我的硬盘上,正在工作.
我将添加任何新的或很好的例子,编写好的SQL,到这个文件.现在它变得很难管理,我必须在我自己的文件中搜索具体内容!
我正在寻找可以快速加载到SQL企业管理器中的东西,类似于Visual Studio IDE代码片段.
我刚刚将一个网站转换为一个Web应用程序项目,我收到此错误:
System.Security.SecurityException: Request for the permission of type
'System.Web.AspNetHostingPermission, System, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?IIS7上的其他一切运行正常.该应用程序需要完全信任,我在web.config中设置了该设置.我是否需要在IIS中的某处提供完全信任访问权限?
谢谢!
对于C或C++,哪种词法分析器/解析器生成器是最好的(最容易使用,最快)?我现在正在使用flex和bison,但是bison只处理LALR(1)语法.我解析语言并不真的需要无限的前瞻,但无限的先行将使解析了很多更加容易.我应该试试Antlr吗?可可/ R?Elkhound?别的什么?
这就是我的意思:
class mycalss
{
string myfunc()
{
string str="hello";
return str;
}
}
...
static void main()
{
string str2;
str2=myfunc();
...
...
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,垃圾收集器是否有可能删除str2的内容,因为str超出了范围?
在动态语言运行时(DLR) 有表达的一些很酷的代码,其中包括一些非常漂亮的代码打印出来,我想使用,使表达式树:
int a = 1;
int b = 2;
Expression<Func<int, int>> expression = (c) => a + (b * c)
expression.Evaluate(5, stringBuilder)
Run Code Online (Sandbox Code Playgroud)
输出:
(5) => a + (b * c) = 11 Where
a = 1
b * c = 10 Where
b = 2
c = 5
Run Code Online (Sandbox Code Playgroud)
我在网上发现了一些代码,但发现只有表达式没有参数时它才有效.
然后我发现了类似方法的DLR实现.然而,DLR有自己的Expression类和许多其他标准C#类型的自定义实现,所以我有点困惑.谁知道我怎么能实现上述?
我在从PHP代码调用url时遇到问题.我需要使用PHP代码中的查询字符串来调用服务.如果我在浏览器中键入url,它可以正常工作,但如果我使用file-get-contents()来进行调用,我会得到:
警告:file-get-contents(http:// ....)无法打开流:HTTP请求失败!HTTP/1.1 202接受于......
我使用的代码是:
$query=file_get_contents('http://###.##.##.##/mp/get?mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert format=flv');
echo($query);
Run Code Online (Sandbox Code Playgroud)
就像我说 - 从浏览器调用,它工作正常.有什么建议?
我也尝试过另一个网址,例如:
$query=file_get_contents('http://www.youtube.com/watch?v=XiFrfeJ8dKM');
Run Code Online (Sandbox Code Playgroud)
这工作得很好......可能是我需要调用的网址中有第二个http://吗?
在数据库中存储连接字符串的想法是一个不正常的想法,但请先听我说.我们都知道加密web.config文件中的连接字符串是最佳做法,但是如果我们完全跳过web.config文件呢?
几个月前,我被要求将数据库从一台服务器移动到另一台服务器.这意味着必须更新访问这些不同数据库的每个程序中的连接字符串.这是2年来第3次我不得不将数据库从一台服务器移动到另一台服务器.所以我想到将连接字符串存储在数据库中并为每个GUID分配要通过Web服务访问的GUID.您只需将连接字符串GUID存储在web.config中,并引用连接字符串Web服务,以便可以请求连接字符串,而不是将连接字符串放在web.config中.加密可以在应用程序级别完成,连接字符串只是加密存储在数据库中.
我创建了一个概念证明,它工作正常(它只是在本地内部网上,而不是暴露在互联网上).
这个好处对我来说很明显; 例如能够快速更新连接字符串而无需触摸Web应用程序.这意味着您可以构建一个Web应用程序,仅用于编辑数据库中的连接字符串,DBA可以在其中使用,因此在移动数据库时,他们永远不必打扰程序员.
但好处不是我感兴趣的.我对这里的每个人都想做这样的事情感兴趣吗?
asp.net ×3
c# ×2
.net ×1
amazon-ec2 ×1
antlr ×1
api ×1
bison ×1
clr ×1
file-io ×1
file-locking ×1
flex-lexer ×1
iis ×1
iis-7 ×1
java ×1
lexer ×1
linq ×1
parsing ×1
php ×1
putty ×1
query-string ×1
sql ×1
sql-server ×1
string ×1
web-services ×1