我尝试删除Windows服务sc delete <service name>,并遇到以下错误:
[SC] DeleteService FAILED 1072:
指定的服务已标记为删除.
我已经做了什么:
显然停止了服务.将sc queryex "<service name>"给出以下结果:
SERVICE_NAME: Stub service
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1067 (0x42b)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :
Run Code Online (Sandbox Code Playgroud)确保Microsoft管理控制台已关闭(taskkill /F /IM mmc.exe),
从注册表中删除了密钥HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<服务名称>.
由于此删除,services.msc仍显示服务(具有名称,但没有状态或启动类型),但描述为"<无法读取描述.错误代码:2>".尝试查看属性时,"系统找不到指定的文件."会显示五次.
问题依然存在.
你下一步怎么做?
在Microsoft SQL Server Management Studio 2008中,是否有一个秘密可以根据密钥编辑一行?
可以选择"编辑前200行",但如果我想选择其他行并在数据网格中编辑它会怎样?我宁愿这样做,也不愿编写更新语句并冒险搞乱where子句.
我尝试pip在Ubuntu机器上的虚拟环境中部署Python包,但遇到与权限相关的问题.例如:
(TestVirtualEnv)test@testServer:~$ pip install markdown2
Run Code Online (Sandbox Code Playgroud)
终止于:
错误:无法创建'/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py':权限被拒绝
我不能sudo,因为它将全局安装包,而不是在虚拟环境中.我chown编辑site-packages; ls只显示相关的目录easy_install,pip并setuptools,并没有相关的降价.
如何在pip不遇到与权限相关的错误的情况下在虚拟环境中部署程序包?
我正在开发一个应用程序,它遍历某些目录中的每个文件,并对这些文件执行一些操作.其中,我必须检索文件大小和修改此文件的日期.
有些文件全名(目录+文件名)太长,我无法使用.NET Framework FileInfo,限制为MAX_PATH(260个字符).许多Web资源建议通过P/Invoke使用本机Win32函数来访问名称太长的文件.
目前,Win32函数似乎出现了完全相同的问题.例如,对于GetFileAttributesEx270字节的路径,(kernel32.dll)失败,Win32错误3 ERROR_PATH_NOT_FOUND.
可以从Notepad2成功打开同一个文件并使用Windows资源管理器成功显示(但Visual Studio 2010例如由于259个字符限制¹而无法打开它).
当文件路径长度为270个字符时,如何才能访问文件?
笔记:
删除或忽略文件路径长度超过259个字符的文件不是解决方案.
我正在寻找仅与Unicode兼容的解决方案.
该应用程序将在安装了.NET Framework 4的Windows 2008/Vista或更高版本下运行.
¹令人惊讶的是,Microsoft Word 2007失败了,在没有任何软盘驱动器的计算机上抱怨"软盘太小",或者在剩下4 GB RAM时"RAM内存很低",或者最后那个"防病毒软件[...]需要更新".他们有一天会停止显示至少在像Microsoft Office这样的关键产品中出现如此愚蠢无意义的错误吗?
当EF或LINQ to SQL运行查询时,它:
看看堆栈跟踪,我无法弄清楚第二部分发生的位置.
通常,是否可以使用EF的现有部分或(最好)LINQ to SQL将Expression对象转换为部分SQL查询(使用Transact-SQL语法),或者我必须重新发明轮子?
更新:评论要求提供我正在尝试做的一个示例.
实际上,下面的Ryan Wright的答案完全说明了我想要实现的结果,除了我的问题是如何通过使用EF和LINQ to SQL实际使用的.NET Framework的现有机制来实现它的事实.而不是必须重新发明轮子并自己编写数千行不经过测试的代码来做类似的事情.
这也是一个例子.再次注意,没有ORM生成的代码.
private class Product
{
[DatabaseMapping("ProductId")]
public int Id { get; set; }
[DatabaseMapping("Price")]
public int PriceInCents { get; set; }
}
private string Convert(Expression expression)
{
// Some magic calls to .NET Framework code happen here.
// [...]
}
private void TestConvert()
{
Expression<Func<Product, int, int, bool>> inPriceRange =
(Product product, int from, int to) => …Run Code Online (Sandbox Code Playgroud) 我正在尝试将日志记录添加到使用Flask的Web应用程序.
使用内置服务器(即python3 server.py)托管时,日志记录有效.使用Gunicorn托管时,不会创建日志文件.
重现问题的最简单的代码是这样的:
#!/usr/bin/env python
import logging
from flask import Flask
flaskApp = Flask(__name__)
@flaskApp.route('/')
def index():
flaskApp.logger.info('Log message')
print('Direct output')
return 'Hello World\n'
if __name__ == "__main__":
logHandler = logging.FileHandler('/var/log/demo/app.log')
logHandler.setLevel(logging.INFO)
flaskApp.logger.addHandler(logHandler)
flaskApp.logger.setLevel(logging.INFO)
flaskApp.run()
Run Code Online (Sandbox Code Playgroud)
该应用程序使用:
gunicorn server:flaskApp -b :80 -w 4
--access-gfile /var/log/demo/access.log
--error-logfile /var/log/demo/error.log
Run Code Online (Sandbox Code Playgroud)
在对网站主页发出请求时,会发生以下情况:
我收到了预期的HTTP 200"Hello World \n"作为响应.
有一丝请求/var/log/demo/access.log.
/var/log/demo/error.log 保持不变(只有引导事件).
终端中有"直接输出"线.
没有'/var/log/demo/app.log'.如果我在启动应用程序之前创建文件,则不会修改该文件.
注意:
每个人/var/log/demo都可以访问(读,写,执行)目录,因此这不是权限问题.
如果我添加StreamHandler为第二个处理程序,则终端和Gunicorn日志文件中仍然没有"日志消息"消息的痕迹.
Gunicorn是使用安装的pip3 install gunicorn,所以不应该与Python版本有任何不匹配.
发生了什么?
我在多个表中插入数据.我需要知道表中最后插入的(自动递增的)ID.我需要在其他表中将它用作Foriegn Key.
总之,我需要替代@@IdentityT-Sql.
在C#中,使用.NET Framework 4,是否有一种优雅的方法可以重复执行相同的操作一定次数?例如,而不是:
int repeat = 10;
for (int i = 0; i < repeat; i++)
{
Console.WriteLine("Hello World.");
this.DoSomeStuff();
}
Run Code Online (Sandbox Code Playgroud)
我想写一些类似的东西:
Action toRepeat = () =>
{
Console.WriteLine("Hello World.");
this.DoSomeStuff();
};
toRepeat.Repeat(10);
Run Code Online (Sandbox Code Playgroud)
要么:
Enumerable.Repeat(10, () =>
{
Console.WriteLine("Hello World.");
this.DoSomeStuff();
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以为第一个例子创建我自己的扩展方法,但是不存在一个现有的功能,这使得它已经可以做到这一点吗?
在C#中,我经常要将整数值限制为一系列值.例如,如果应用程序需要百分比,则用户输入中的整数不得小于零或大于一百.另一个例子:如果有五个网页可以访问Request.Params["p"],我希望值为1到5,而不是0或256或99999.
我常常写一个非常丑陋的代码,如:
page = Math.Max(0, Math.Min(2, page));
Run Code Online (Sandbox Code Playgroud)
甚至是丑陋的:
percentage =
(inputPercentage < 0 || inputPercentage > 100) ?
0 :
inputPercentage;
Run Code Online (Sandbox Code Playgroud)
在.NET Framework中没有更智能的方法来做这些事情吗?
我知道我可以编写一个通用的方法int LimitToRange(int value, int inclusiveMinimum, int inlusiveMaximum)并在每个项目中使用它,但也许框架中已经有一个神奇的方法了?
如果我需要手动执行,那么在第一个示例中执行我正在执行的操作的"最佳"(即,更简单,更快速)的方法是什么?像这样的东西?
public int LimitToRange(int value, int inclusiveMinimum, int inlusiveMaximum)
{
if (value >= inclusiveMinimum)
{
if (value <= inlusiveMaximum)
{
return value;
}
return inlusiveMaximum;
}
return inclusiveMinimum;
}
Run Code Online (Sandbox Code Playgroud) 使用会话时,Flask需要一个密钥.在我看过的每个例子中,秘密密钥以某种方式生成,然后存储在源代码或配置文件中.
永久存储它的原因是什么?为什么不在应用程序启动时简单地生成它?
app.secret_key = os.urandom(50)
Run Code Online (Sandbox Code Playgroud)