我主要开发C#web类型的应用程序,但最近我们工程组中的某个人想要将这个相当简单的基于C#客户端的应用程序重新创建到基于C#web的应用程序.好吧,我发现所有的应用程序都是创建一个网络文件夹结构(一个父目录,其中包含一些子目录).
然后我提到使这个Web应用程序有什么好处,它所做的就是创建一些网络文件夹结构.好吧,他提到他不想创建一个客户端应用程序,并说有50个用户安装此客户端应用程序.他希望它在一个中心位置.所以我想你不能只创建一个C#应用程序并将其扔到网络上并让多个人打开并使用它吗?
那可能吗?我不是客户端开发人员,所以我认为逻辑上这是可能的,但后来我认为如果它是一个网络应用程序,那么打开此应用程序的一个用户会锁定其他用户?我个人不喜欢网络化这个应用程序(基于网络)的想法,对我而言,成为一个网络应用程序真的没有意义.
思想/想法?
更多信息(编辑)
嗯,我想我应该包括更多信息.文件夹是通过一些数据库数据创建的.所以它不能是批处理文件或脚本.最终用户必须从下拉列表中选择一些条目,该值将成为父文件夹名称的值.
我正在编写将并行运行的脚本,并将从同一个文件中获取输入数据.这些脚本将打开输入文件,读取第一行,存储它以供进一步处理,最后从输入文件中擦除此读取行.
现在问题是访问文件的多个脚本可能导致两个脚本同时访问输入文件并读取同一行的情况,这会产生两次处理行的不可接受的结果.
现在一个解决方案是.lock_input在访问输入文件之前编写一个锁文件(),然后在释放输入文件时将其擦除,但是这种解决方案在我的情况下并不吸引人,因为有时NFS会随机减慢网络通信速度并且可能没有可靠的锁定.
另一种解决方案是放置进程锁而不是编写文件,这意味着访问输入文件的第一个脚本将启动一个名为lock_input的进程,其他脚本将启动ps -elf | grep lock_input.如果它出现在进程列表中,它们将等待.这可能比写入NFS更快,但仍然不是完美的解决方案......
所以我的问题是:是否有任何bash命令(或其他脚本解释器)或我可以使用的服务,其行为类似于线程编程中用于同步的信号量或互斥锁?
谢谢.
小粗略的例子:
假设我们有input_file如下:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
治疗脚本:TrScript.sh
#!/bin/bash
NbLines=$(cat input_file | wc -l)
while [ ! $NbLines = 0 ]
do
FirstLine=$(head -1 input_file)
echo "Hello World today is $FirstLine"
RemainingLines=$(expr $NbLines - 1 )
tail -n $RemainingLines input_file > tmp
mv tmp input_file
NbLines=$(cat input_file | wc -l)
done
Run Code Online (Sandbox Code Playgroud)
主要脚本:
#! /bin/bash
./TrScript.sh &
./TrScript.sh &
./TrScript.sh &
wait
Run Code Online (Sandbox Code Playgroud)
结果应该是:
Hello …
我想用前缀绑定一个集合,就像这样
public ActionResult Whatever([Bind(Prefix = "Prefix")] CustomModel[] models)
Run Code Online (Sandbox Code Playgroud)
我使用创建表单元素
<%= Html.TextBox("Prefix.models[" + i + "].Property") %>
Run Code Online (Sandbox Code Playgroud)
它生成了像这样的html输入
<input id="Prefix_models[0]_Property" name="Prefix.models[0].Property" />
Run Code Online (Sandbox Code Playgroud)
我的问题是默认模型绑定器不会与前缀绑定.我在动作方法中为模型arg得到null.
如果我从html中删除前缀并删除Bind属性,一切正常.我无法想象默认的模型绑定器不会处理集合上的前缀,所以我一定做错了.
请帮忙.干杯!
进入以下几点:
>>> class A:
... def __str__(self):
... return "some A()"
...
>>> class B(A):
... def __str__(self):
... return "some B()"
...
>>> print A()
some A()
>>> print B()
some B()
>>> A.__str__ == B.__str__
False # seems reasonable, since each method is an object
>>> id(A.__str__)==id(B.__str__)
True # what?!
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
是否可以更改我的PHP应用程序包含的文件的错误报告级别(关闭E_STRICT)include或require_once?
我希望能够看到我的代码中出现的严格通知,但我正在使用PEAR MDB2,当我打开E_STRICT时,我从该代码中获得了警告页面.
我知道可以error_reporting使用.htaccess文件在每个目录的基础上进行更改,但我认为这不适用于包含的文件.我尝试将它放在梨文件夹中,但它没有做任何事情.
我有一个管理区域,我只想要管理员进入该区域.我考虑过将Adminized属性添加到Admin区域中的每个控制器.是不是有优雅的解决方案,还是框架本身没有这个功能?
编辑:对不起,我之前应该提到这个.我正在使用从AuthorizeAttribute派生的自定义AuthorizedAttribute.
如何根据现在的天数确定日期 - "从现在开始的180天是什么日期?"
伪示例:
<Window>
<Window.Tag>
<x:Dictionary KeyType="{x:Type sys:String}" ValueType="{x:Type sys:Int32}">
<sys:DictionaryEntry Entry="{sys:DictionaryEntry Key0, 000}"/>
<sys:DictionaryEntry Key="key1" Value="111"/>
<sys:DictionaryEntry>
<sys:DictionaryEntry.Key>
<sys:String>Key2<sys:String>
</sys:DictionaryEntry.Key>
<sys:DictionaryEntry.Value>
<sys:Int32>222</sys:Int32>
</sys:DictionaryEntry.Value>
</sys:DictionaryEntry>
</x:Dictionary />
</Window.Tag>
</Window>
Run Code Online (Sandbox Code Playgroud) 任何人都可以帮我解决这个小问题.
XML
<MPN>
<MTR MSN="AB123456"/>
<MTR MSN="AB654321"/>
<MTR MSN="AB654322"/>
<MTR MSN="AB654323”/>
<MTR MSN="AB654324"/>
<JOB JobId="136">
<JMR MSN="AB123456">
<JRA DateActionRequiredBy="20090701120012" />
</JMR>
<JMR MSN="AB654321">
<JRA DateActionRequiredBy="20090701100010" />
</JMR>
</JOB>
</MPN>
Run Code Online (Sandbox Code Playgroud)
我想从JRA元素中检索DateActionRequiredBy,当解析器位于MTR元素时,只应返回一个.
我试过了.
../JOB/JMR[@MSN = @MSN]/JRA/@DateActionRequiredBy
Run Code Online (Sandbox Code Playgroud)
返回{Dimension:[2]} NodeSet,由于@MSN属性有效地匹配自身而不是父级,因此匹配所有内容.
../JOB/JMR[@MSN = ./@MSN]/JRA/@DateActionRequiredBy
Run Code Online (Sandbox Code Playgroud)
返回{Dimension:[2]} NodeSet
我找到了一个解决方案,但它需要在每个xsl:属性中都有一个变量,这对我来说似乎不对.
<xsl:variable name="storeMSN" select="@MSN"/>
../JOB/JMR[@MSN = $storeMSN]/JRA/@DateActionRequiredBy
Run Code Online (Sandbox Code Playgroud)
返回 20090701120012属性
这就是我所追求的,但除了每个属性的变量之外,必须有一种更简单的方法来实现这一点.
提前致谢.
我在我的Bazaar工作树中有一堆我不再需要的未知文件.我可以使用它来获取它们的列表bzr stat,但我想要一种简单的方法来摆脱它们.(我希望可以选择bzr revert这样做,但我找不到.)
我总是可以编写一个小脚本来解析输出bzr stat和/ rm或mv未知数,但我认为可能已存在某些东西.
我有Bazaar(bzr)1.13.1.
asp.net ×1
asp.net-mvc ×1
bash ×1
bazaar ×1
c# ×1
datetime ×1
dictionary ×1
idictionary ×1
key-value ×1
locking ×1
methods ×1
object ×1
overriding ×1
php ×1
python ×1
sql-server ×1
xaml ×1
xml ×1
xpath ×1
xslt ×1