我一直在寻找一段时间,觉得我有一个特别独特的情况.
我正在从第三方程序(我嵌入到我的C#应用程序中)生成一个图像,该程序保存到我的Web服务器上的文件系统中.您知道在特定会话完成后处理这些图像的任何有效方法吗?
对于Clarity:最初我在考虑一个文件夹(对于我的会话ID存储的图像),其内容每24小时左右自动删除一次.我不喜欢这个想法,因为它不是真正的可扩展性.
我还看了一下这个网站生成的ASP.NET动态图像. http://www.sitepoint.com/article/generating-asp-net-images-fly/
但是这看起来有点过分,因为我的图像需要以这种或那种方式保存到文件系统中.如果我将图像保存为静态名称,然后使用上述方法从中生成位图我担心并发使用可能会破坏应用程序.
这使得我可以在名称中保存带有会话ID的文件名,但是在会话结束后我找不到任何有效的清理图像的方法.
谢谢!
戴夫
更新:我非常喜欢到目前为止所提供的所有解决方案(我不认为数据库会因为我导出图像的方式而起作用)我感谢您的所有帮助...我将开始实施这些并且将会报告回来哪个效果最好!
Update2:我最终随机生成图像名称,存储它们,然后在会话结束时删除它们,感谢您的帮助.所有提出的方法都是很好的建议.对于这种特殊情况,虽然这种方法效果最好.
关于动态存储临时映像并在Web服务器的文件系统上处理它们的清理的主题:(在.NET 3.5中使用C#).
有人建议我使用一个global.asax
文件来处理这个问题.
我只是无法弄清楚这件事是如何运作的.
我有两个单独的申请......
我已经发现global.asax应该在网站的根目录中.
问题:
1)如何global.asax
只为这两个特定的应用程序启动.
2)两个应用程序都需要创建一个字符串列表(文件位置),然后在应用程序终止时删除它们.我是在应用程序中实例化此数组,还是在global.asax
?
我的代码看起来像这样:
List<string> fileLocations = new List<string>();
//I don't know where to put this.
//The next line of code will be in both applications (this could
//be called many times in one application session. The names of
//the files are generated from the clock (milliseconds and
//seconds combined, I might change this to use the actual
//random class combined with sessionID)
fileLocations.Add(file);
void Application_End(object sender, EventArgs …
Run Code Online (Sandbox Code Playgroud) 我通过COM接口将数据从C#传递给R.当数据到达R时,它被存放在"矩阵"中.我使用的一些功能要求数据在'DataFrame'中.我使用转换数据结构
newDataFrame <- as.data.frame(oldMatrix)
Run Code Online (Sandbox Code Playgroud)
数据表到达R就好了,一旦我转换到DataFrame,它就假设我的所有数值数据都是因素!
所以它转变为:{34,46,90,54,69,54}成{1,2,3,4,5,4}
我的数据表中有因素,所以我不能强迫整个数据.有没有办法解决?注意:我无法将数据作为CSV导出到文件系统中,并手动将其读入R.
另外,我正在使用的函数需要一个DataFrame是'Hmisc'包使用
hist.data.frame(dataFrame)
Run Code Online (Sandbox Code Playgroud)
这会为DataFram中的每一列数据生成频率直方图,并以网格模式排列所有数据(非常漂亮)!
谢谢!戴夫