小编jja*_*man的帖子

错误 - 无法访问IIS元数据库

安装Visual Studio 2012并打开我的解决方案后,我遇到了以下形式的一系列错误:

Web应用程序项目Foo配置为使用IIS.
无法访问IIS元数据库.您没有足够的权限访问计算机上的IIS网站.

我为每个Web应用程序都得到了这个.我尝试过的事情:

  1. 以管理员身份运行Visual Studio
  2. 运行aspnet_regiis.exe -ga MyUserName
  3. 运行aspnet_regiis.exe -i

这些似乎是这个问题的常见解决方案,但我没有取得任何成功.还有什么我可以尝试做的吗?

.net c# iis

832
推荐指数
13
解决办法
35万
查看次数

JSON应该包含空值

我正在创建一个将结果作为JSON返回的API.当值为null时,是否应该在结果中包含键,是否存在当前的最佳实践?例如:

{
    "title":"Foo Bar",
    "author":"Joe Blow",
    "isbn":null
}
Run Code Online (Sandbox Code Playgroud)

要么

{
    "title":"Foo Bar",
    "author":"Joe Blow"
}
Run Code Online (Sandbox Code Playgroud)

由于第二个较小,我倾向于这种风格,但我不确定是否有一个首选的风格.从客户的角度来看,似乎两种风格在功能上都是等同的.各有利弊吗?

javascript null json undefined

86
推荐指数
4
解决办法
9万
查看次数

使用Java ZipOutputStream和BufferedOutputStream的首选方法

在Java中,我首先实例化ZipOutputStream还是首先实例化BufferedOutputStream?例:

FileOutputStream dest = new FileOutputStream(file);
ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(dest));

// use zip output stream to write to
Run Code Online (Sandbox Code Playgroud)

要么:

FileOutputStream dest = new FileOutputStream(file);
BufferedOutputStream out = new BufferedOutputStream(new ZipOutputStream(dest));

// use buffered stream to write to
Run Code Online (Sandbox Code Playgroud)

在我非科学的时间里,我似乎无法在这里说出很多不同之处.我在Java API中看不到任何表明这些方法之一是必要的还是首选的.有什么建议?似乎首先压缩输出然后缓冲它以进行写入会更有效.

java io outputstream

54
推荐指数
2
解决办法
7万
查看次数

判断字符串是否为有效日期的最快方法

我在工作中支持一个公共库,它对给定字符串执行许多检查,以查看它是否是有效日期.Java API,commons-lang库和JodaTime都有方法可以解析字符串并将其转换为日期,让你知道它是否真的是一个有效的日期,但我希望有一种方法在没有实际创建日期对象的情况下进行验证(或者像JodaTime库那样使用DateTime).例如,这是一段简单的示例代码:

public boolean isValidDate(String dateString) {
    SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
    try {
        df.parse(dateString);
        return true;
    } catch (ParseException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很浪费,我们扔掉了最终的对象.从我的基准测试中,我们在这个公共图书馆中有大约5%的时间用于验证日期.我希望我只是错过了一个明显的API.任何建议都会很棒!

UPDATE

假设我们始终可以使用相同的日期格式(可能是yyyyMMdd).我确实考虑过使用正则表达式,但是它需要知道每个月的天数,闰年等等......


结果

解析了一千万次的约会

Using Java's SimpleDateFormat: ~32 seconds 
Using commons-lang DateUtils.parseDate: ~32 seconds
Using JodaTime's DateTimeFormatter: ~3.5 seconds 
Using the pure code/math solution by Slanec: ~0.8 seconds 
Using precomputed results by Slanec and dfb (minus filling cache): ~0.2 seconds
Run Code Online (Sandbox Code Playgroud)

有一些非常有创意的答案,我很感激!我想现在我只需要决定我需要多少灵活性,我希望代码看起来像.我要说dfb的答案是正确的,因为它纯粹是最快的,这是我原来的问题.谢谢!

java

29
推荐指数
3
解决办法
7万
查看次数

Gradle不包含可选的依赖项

我有一个项目,它将apache-compress库作为编译时依赖项.该库似乎使用Maven,并且具有一个POM文件,其依赖项设置为"可选".以下是POM文件的相关部分:

<dependency>
  <groupId>org.tukaani</groupId>
  <artifactId>xz</artifactId>
  <version>1.5</version>
  <optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)

Gradle似乎没有将这个库包含在我的项目中,我猜它是因为"可选"属性.有没有办法告诉Gradle包含这个依赖项而不自己明确地包含xz库?

这是我的Gradle依赖声明: compile group: 'org.apache.commons', name:'commons-compress', version:'1.8.1'

java dependency-management gradle maven apache-commons-compress

7
推荐指数
1
解决办法
2535
查看次数

.Net是否尊重DNS TTL值

我很难找到有关.Net(特别是C#,是否重要)是否尊重DNS条目的TTL值的信息。我相信它不是基于我在这里找到的信息。我在其他地方注意到Java也不尊重DNS TTL值(任何使Java遵守DNS缓存超时(TTL)的方法?)。我是否正确,控制DNS查找被缓存多长时间的唯一方法是使用ServicePointManager.DnsRefreshTimeout属性?如果是这种情况,是否有人知道为什么?似乎是编程语言的一个非显而易见的选择。

.net c# dns

5
推荐指数
0
解决办法
1148
查看次数

WCF MTOM - 支持非二进制格式

我正在创建一个接受MTOM消息的WCF SOAP服务.一般来说,一切都按预期工作,但似乎我的服务只接受二进制编码的附件.例如,如果该附件这样发送(注意Content-Transfer-Encoding7bit):

------=_Part_0_1053847062.1428586130682
Content-Type: text/xml; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-ID: <document.xml>
Content-Disposition: attachment; name="document.xml"
Run Code Online (Sandbox Code Playgroud)

当此消息发布到我的服务时,我收到错误:

<Message>Content-Transfer-Encoding '7bit' not supported for binary part. Must be 'binary'.</Message>
<StackTrace>at System.Xml.XmlMtomReader.CheckContentTransferEncodingOnBinaryPart(ContentTransferEncodingHeader header)
at System.Xml.XmlMtomReader.Read()
at System.Xml.XmlReader.ReadStartElement()
Run Code Online (Sandbox Code Playgroud)

我原本以为必须有一些绑定设置允许其他设置,Content-Transfer-Encoding但我似乎无法找到任何东西.WCF只支持Content-Transfer-Encoding二进制文件吗?如果是这样,有什么方法可以为其他人实施我自己的支持?

另一个可能的答案是,实际上除了二进制之外没有使用其他编码,这是唯一需要的编码.我最初的测试是使用SoapUI,它似乎尽可能使用非二进制编码,但这可能不是一个准确的测试.

.net c# wcf soap mtom

5
推荐指数
0
解决办法
321
查看次数

Castle Windsor何时发布瞬态组件

我来自Java和Spring的背景,而且我对Castle Windsor很新.我已经读过,知道Castle何时会释放瞬态组件非常重要,因为它跟踪创建的所有组件.我很难理解我的组件何时会被释放.以下是我的模型的基础知识:

Singleton -> Singleton Typed Factory -> Transient Objects
Run Code Online (Sandbox Code Playgroud)

如果我在此链中释放第一个单例,那么将释放由类型工厂创建的所有瞬态对象吗?是否有任何API调用我可以检查是否是这种情况?我在Castle Windsor网站上找不到任何全面的API文档.我发现的文档对我来说似乎并不清楚.

编辑: 我的问题归结为两个主要问题.

  1. 如果我有一个依赖单一类型工厂(B)的单例对象(A)而我释放单例A会实际释放B吗?在下面的答案中提到的博客文章说,对单例对象的释放调用被忽略,所以我的假设是不会不会被释放.
  2. 如果我有一个由单个类型的工厂同时用于多个Web请求以创建临时对象并由其中一个Web请求释放,那么是否所有临时对象都将被释放,无论它们是否是从该Web请求创建的?几乎看起来像每个网络请求或短暂的生活方式制作打字工厂更好.

.net c# lifecycle castle-windsor transient

3
推荐指数
1
解决办法
4417
查看次数

使用 Gradle 防止第 3 方库位于编译类路径上

我有一个多项目 Gradle 构建。我有Sub-Project-A这取决于Sub-Project-BSub-Project-B具有编译时依赖性SLF4J。我不希望能够Sub-Project-A针对任何SLF4J库进行编译,但在运行时我确实希望Sub-Project-B代码能够运行。

我认为我可以做的是将编译时依赖项添加到 Sub-Project-B 中,然后添加:

configurations {
  compile.exclude group: 'org.slf4j'
}
Run Code Online (Sandbox Code Playgroud)

到子项目-A。这确实阻止了任何代码针对 slf4j API 进行编译,但它也阻止了 slf4j 库出现在 Sub-Project-A 运行时上,因此一旦Sub-Project-B访问代码,我就会收到 ClassNotFoundException。

由于这很难工作,我想我一定做错了什么,但这并不感觉像是一个不合理的设置。我只希望我的构建中的子项目之一能够在编译时访问第三方库。

java dependencies dependency-management gradle

2
推荐指数
1
解决办法
789
查看次数

当删除div时,按钮停留在最后一个div中

我正在尝试修复我的jQuery代码.我只想在最后一个div中添加"添加内容"按钮.如果删除div,则按钮将保留在最后一个div中.建议请.

var i = 1;
var deletedDivs = 0;
var createdDivs = 0;
$(document).ready(function () {
    $(document).on('click', '.addcontent', function () {
        if (i == 1) $(".question").html('');
        $(".hide_button").remove();
        $(".question").append('<div class="new-question" id="question' + i + '" name="question' + i + '"><div class="deleteButton" id="question' + i + '">Remove</div><b>Question ' + i + '</b><br> This is div text <br> <button class="addcontent hide_button' + i + '">Add content</button></div>').show('slow');
        createdDivs++;
        i++;
    });
    $(document).on('click', '.deleteButton', function () {
        var id = $(this).attr("id");
        $("#" + id).remove();
        deletedDivs++;
        if …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery

1
推荐指数
1
解决办法
117
查看次数