小编Wax*_*ren的帖子

从asp.net core 2中的控制器操作运行后台任务

我正在使用带有asp.net core 2.0的C#开发一个带有REST Api的Web应用程序

我想要实现的是当客户端向端点发送请求时,我将运行与客户端请求上下文分离的后台任务,如果任务成功启动,该任务将结束.

我知道有HostedService,但问题是HostedService在服务器启动时启动,据我所知,没有办法从控制器手动启动HostedService.

这是一个简单的代码来演示这个问题.

[Authorize(AuthenticationSchemes = "UsersScheme")]
public class UsersController : Controller
{

    [HttpPost]
    public async Task<JsonResult> StartJob([FromForm] string UserId, [FromServices] IBackgroundJobService backgroundService) {

           //check user account
           (bool isStarted, string data) result = backgroundService.Start();

           return JsonResult(result);
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-core-mvc asp.net-core asp.net-core-2.0

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

Visual Studio社区2013 Update 4安装失败

我从visualstudio.com下载了Visual Studio Community 2013 Update 4 iso文件,在Windows 8.1 x64上安装VS ,我已经验证了iso文件的SHA1校验和,结果是正确的.

问题是设置在应用:Visual Studio核心功能停止,然后失败并最终确定

-Error图标和"Visual Studio核心功能-ENU安装期间的致命错误"

- 三个消息上的警告图标:"Microsoft Visual C++ 2013 32位编译器 - ENU资源包失败","Microsoft Visual C++ 2013编译器 - ENU资源包失败"和"Microsoft Visual C++ 2013 x64本机编译器 - ENU资源包失败"

到现在为止我做了以下事情: -

1)在安装之前禁用防病毒,防火墙和防恶意软件,并以Administartor身份运行安装.

2)安装前清除%temp%,C:\ ProgramData\Package Cache和AppData\Local\Temp文件夹.

3)使用.Net Framewrok设置验证实用程序验证所有已安装的.Net框架.

4)使用系统文件检查工具修复丢失或损坏的系统文件,如https://support.microsoft.com/KB/929833中所述,结果是"Windows资源保护未发现任何完整性违规".

并在日志中发现了这些错误(ERROR来自vs_professionalcore.msi): -

应用程序数据\本地的\ Temp\dd_vs_community_20141221193705.log

[0B88:12C4][2014-12-21T19:45:57]i000: MUX:  Installation size in bytes for package: vs_professionalcore MaxAppDrive: 0  MaxSysDrive: 1821361272  AppDrive: 0  SysDrive: 1335334008
[0B88:12C4][2014-12-21T19:45:57]i000: MUX:  Return Code:0x0 Msi Messages:0 Result …
Run Code Online (Sandbox Code Playgroud)

installation install windows-installer visual-studio visual-studio-2013

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

Git克隆在MAC OSX 10.12上接收对象时挂起

我试图在mac osx 10.12上设置Cocoapods,我试图在终端中执行此命令它挂在接收对象上: -

cd ~/.cocoapods/repos
GIT_TRACE=1; GIT_CURL_VERBOSE=1 git clone http://github.com/CocoaPods/Specs.git master --verbose
Run Code Online (Sandbox Code Playgroud)

这是终端输出: -

            Cloning into 'master'...
            * Couldn't find host github.com in the .netrc file; using defaults
            *   Trying 192.30.253.112...
            * Connected to github.com (192.30.253.112) port 80 (#0)
            > GET /CocoaPods/Specs.git/info/refs?service=git-upload-pack HTTP/1.1
            Host: github.com
            User-Agent: git/2.7.4 (Apple Git-66)
            Accept: */*
            Accept-Encoding: gzip
            Pragma: no-cache

            < HTTP/1.1 301 Moved Permanently
            < Content-length: 0
            < Location: https://github.com/CocoaPods/Specs.git/info/refs?service=git-upload-pack
            < Connection: close
            < 
            * Closing connection 0
            * Issue another request to …
Run Code Online (Sandbox Code Playgroud)

git macos terminal ios cocoapods

8
推荐指数
2
解决办法
2703
查看次数

使用 ASP.NET Core 3.0 内置 API 从 .crt 和 .key 文件创建 X509Certificate2

我正在使用 ASP.NET Core 3.0 预览版 8 开发 Web 应用程序。我想要实现的是直接从 .crt 和 .key (PKCS#1) 文件创建一个 X509Certificate2,以便使用新的 .NET Core 3.0 与 Kestrel 一起使用内置在此链接中介绍的 Api。

.NET Core 3.0 中的新增功能(预览版 8)

目前我正在使用此命令将证书转换为 .pfx 文件

openssl pkcs12 -export -in $CERTIFICATE_FILE -inkey $KEY_FILE -out $OUTPUT_CERTIFICATE_FILE -passout pass:$OUTPUT_CERTIFICATE_PASSWORD
Run Code Online (Sandbox Code Playgroud)

然后我创建 X509Certificate2 并将其与 Kestrel 一起使用:

webBuilder.ConfigureKestrel((context, options) =>
{
    options.ConfigureHttpsDefaults(httpsOptions =>
    {
        if (!context.HostingEnvironment.IsProduction())
            return;

            string outputCertificateFile = context.Configuration["OUTPUT_CERTIFICATE_FILE"];
            string outputCertificatePassword = context.Configuration["OUTPUT_CERTIFICATE_PASSWORD"];

            var tlsCertificate = new X509Certificate2(outputCertificateFile, outputCertificatePassword);
            httpsOptions.ServerCertificate = tlsCertificate;
    });
});
Run Code Online (Sandbox Code Playgroud)

编辑:-

我已经根据上面链接中的示例实现了新的 Api:

using (var …
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core kestrel-http-server asp.net-core

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

JVM进程大小和内存堆大小之间的巨大差异

我正在Windows 8.1 64bit上开发java swing应用程序,带有4GB RAM,JDK版本为8u20 64bit.

问题是当我使用带有Monitor选项的Netbeans Profiler启动应用程序时.

加载第一个Jframe时,应用程序内存堆约为18mb,JVM进程大小约为50mb(image1).

然后当我启动包含带有webView的JFxPanel的其他Jframe时,Heap跳转到45mb并且JVM 进程非常快地跳到700mb(image2),这非常令人困惑.然后,当我关闭第二个JFrame并且它被释放并调用System.gc()并且JVM执行GC(在大多数情况下)时,堆降低到大约20mb,但JVM进程从不丢弃(image3).

为什么内存堆(45 Mb)和JVM进程(699 Mb)之间存在巨大差异?为什么JVM需要所有内存?以及如何减少这个数额?我正在使用这些vm选项启动应用程序:

-Xms10m  -Xmx60m -Xss192k
-XX:+UseG1GC -XX:MinHeapFreeRatio=5
-XX:MaxHeapFreeRatio=10  -XX:PermSize=20m
-XX:MaxPermSize=32m  
Run Code Online (Sandbox Code Playgroud)

编辑: -我刚刚读到该链接JVM内存使用失控的问题,他有同样的问题,但情况不同他的堆大小是JVM进程内存总大小的33%,在我的情况下小于7 %,他同时做多个工作(Tomcat webapp),我没有(java swing应用程序),他没有使用我所做的相同VM参数启动他的应用程序.

更新: - 在第一个JFrame启动后(image1)

第一个JFrame推出

第二个JFrame启动后(image2)

第二个JFrame发布

第二个JFrame关闭后(image3)

第二个JFrame关闭

编辑2: - 我刚刚使用上面相同的VM参数尝试了相同的应用程序并添加了

-client 
-XX:+UseCompressedOops 
Run Code Online (Sandbox Code Playgroud)

并且使用了JDK 8u25 32位,因为如本答案/sf/answers/1083005381/中所述,64位版本不包含JRE中的客户端文件夹,并将忽略-client参数.

结果是当第二个JFrame打开时,总内存进程跳转到540Mb,并且堆大小(在三个点中)与64位版本中的数量几乎相同,这是否确认这是一个与问题相关的问题到JVM(相同的堆大小和总进程大小的260Mb差异)?

java swing jvm

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

获取javaFX 8中节点的屏幕坐标

我正在Windows 8.1 64bit上开发一个JavaFX应用程序,带有4GB RAM,JDK版本为8u45 64bit.

我想捕获部分屏幕使用,Robot但问题是我无法获取我想要捕获的锚窗格的屏幕坐标,我不想使用,snapshot因为输出质量很差.这是我的代码.

我在这个链接中看到了这个问题在 JavaFX中获取Node的全局坐标, 并且这个 在javaFX中获得了一个节点的真实位置, 我尝试了每个答案,但没有任何工作,图像显示了屏幕的不同部分.

private void capturePane() {
    try {
        Bounds bounds = pane.getLayoutBounds();
        Point2D coordinates = pane.localToScene(bounds.getMinX(), bounds.getMinY());
        int X = (int) coordinates.getX();
        int Y = (int) coordinates.getY();
        int width = (int) pane.getWidth();
        int height = (int) pane.getHeight();
        Rectangle screenRect = new Rectangle(X, Y, width, height);
        BufferedImage capture = new Robot().createScreenCapture(screenRect);
        ImageIO.write(capture, "png", new File("image.png"));
    } catch (IOException | AWTException ex) {
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

java javafx awt awtrobot javafx-8

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

如何从 C# Mongodb 强类型驱动程序中的文档加载特定字段

我使用官方 C# MongoDb 强类型驱动程序版本 2.5.0 与 MongoDB 交互。

我有类 Book 和 Page 如下:

public class Book
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    public string Title { get; set; }

    public string AuthorName { get; set; }

    public int PublishYear { get; set; }

    public List<Page> Pages { get; set; } = new List<Page>();

}


public class Page
{
    [BsonId]
    [BsonRepresentation(BsonType.ObjectId)]
    public string Id { get; set; }

    public int Number { get; set; }

    public string …
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb mongodb-query mongodb-.net-driver

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

使用CommonCrypto进行Swift AES加密

我正在使用Swift 2.1XCode 7.1上开发iOS应用程序,我正在尝试使用CommonCrypto库使用AES 128位PKCS7填充进行简单加密.

代码工作,但每次我尝试将NSData对象转换NSString为String然后我得到一个零,应用程序崩溃.

我调试了应用程序,NSData对象不是零.

当我尝试解包String可选时,会发生错误.

如何解决这个问题?并将NSData对象正确转换为String?这是我的代码

static func AESEncryption(phrase: String,key: String,ivKey: String,encryptOrDecrypt: Bool) -> String {

let phraseData = phrase.dataUsingEncoding(NSUTF8StringEncoding)
let ivData = ivKey.dataUsingEncoding(NSUTF8StringEncoding)
    let keyData: NSData! = key.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
    let keyBytes         = UnsafePointer<Void>(keyData.bytes)
    let keyLength        = size_t(kCCKeySizeAES128)
    let dataLength       = Int(phraseData!.length)
    let dataBytes        = UnsafePointer<Void>(phraseData!.bytes)
    let bufferData       = NSMutableData(length: Int(dataLength) + kCCBlockSizeAES128)!
    let bufferPointer    = UnsafeMutablePointer<Void>(bufferData.mutableBytes)
    let bufferLength …
Run Code Online (Sandbox Code Playgroud)

encryption ios commoncrypto swift swift2.1

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

如何在 C# Mongodb 强类型驱动程序中存储和查询坐标数组

我正在使用官方 C# MongoDb 强类型驱动程序版本 2.5.0 与 MongoDB 交互。

我有一个经度和纬度坐标数组,我想将它们存储在 MongoDB 中。

用于存储坐标数组的类的名称是什么?所以我最近可以执行以下查询,检查如果给定坐标靠近坐标数组中的任何点,如何实现这一点?

这是演示该问题的简单代码。

        var coordinates = new List<(double latitude, double longitude)>();

        //Store coordinates array in the database

        (double latitude, double longitude) point = (-33.847927, 150.6517805);

        int maxDistance = 300;//Max Distance in meters

        //Check if any point in the coordinates array is 300 m near the given point
Run Code Online (Sandbox Code Playgroud)

编辑:-

根据下面@CodeFuller评论中提到的这个问题:-

数组上的 MongoDB 地理空间索引(多键 + 地理空间)

MongoDB 不支持数组上的地理空间索引,因此请考虑以下类:

class SomeDocument {

    public ObjectId Id { get; set; }

    public string Title { …
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb mongodb-query mongodb-.net-driver

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