小编dre*_*eza的帖子

在Linux上运行Java应用程序即服务

我编写了一个在标准虚拟托管Linux解决方案上运行的Java服务器应用程序.应用程序一直运行,监听套接字连接并为它们创建新的处理程序.它是客户端 - 服务器应用程序的服务器端实现.

我启动它的方法是将它包含在服务器的启动rc.local脚本中.但是一旦启动,我不知道如何访问它来阻止它,如果我想安装更新,所以我必须重新启动服务器才能重新启动应用程序.

在Windows PC上,对于这种类型的应用程序,我可能会创建一个Windows服务,然后我可以根据需要停止并启动它.Linux盒子上有类似的东西,所以如果我启动这个应用程序,我可以停止它并重新启动它而不需要完全重启服务器.

我的应用程序称为WebServer.exe.它是在服务器启动时启动的,它包含在我的rc.local中:

java -jar /var/www/vhosts/myweb.com/phpserv/WebServer.jar &
Run Code Online (Sandbox Code Playgroud)

我在Linux上有点像菜鸟,所以任何帖子都会受到赞赏.但是我确实有SSH,并且可以通过完整的FTP访问该框以安装任何更新以及访问Plesk面板.

java linux service

124
推荐指数
6
解决办法
19万
查看次数

在MVC控制器操作中暂停

我的一位同事写了一些代码,这些代码在进行Web服务调用以检查值的状态之前基本上暂停了1秒.此代码是在MVC 4应用程序的控制器操作中编写的.动作本身不是异步的.

var end = DateTime.Now.AddSeconds(25);
var tLocation = genHelper.GetLocation(tid);

while (!tLocation.IsFinished && DateTime.Compare(end, DateTime.Now) > 0)
{
    var t = DateTime.Now.AddSeconds(1);
    while (DateTime.Compare(t, DateTime.Now) > 0) continue;

    // Make the webservice call so we can update the object which we are checking the status on
    tLocation = genHelper.GetLocation(tid);
}
Run Code Online (Sandbox Code Playgroud)

它似乎有效,但由于某种原因,我对它的实现有一些担忧.是否有更好的方法来延迟?

注意:

  1. 我们不使用.NET 4.5,并且在此解决方案中不会更改为此
  2. 像SignalR这样的Javascript脚本选项目前不是一个选项

我原以为这个问题是一个很好的选择,但是他并没有接受它,并说这不是他所做的工作所必需的.

如何在C#4.0中让任务进入睡眠状态(或延迟)?

c# asp.net-mvc-4

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

我应该将我的接口定义放在与其实现相同的命名空间中

如果我定义一个接口ITestInterface然后立即创建一个实现该接口的类以便在应用程序中使用,那么可以将类和接口保持在同一名称空间中,也可以将它们分开.即Test.InterfacesTest.Interfaces.Implementation.

我的接口和它的实现都将在它自己的程序集中,所以我不打算创建另一个只是为了包含接口本身.

这与c#特别相关,但我想它可以涵盖任何语言.

c# interface

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

使用Nodatime将UTC时间转换为当地时间

我已经提供了这种格式"ddMMyyHHmmss"的时间.我知道时间是UTC格式.我想使用NodaTime库将其转换为我当地的时区,但我似乎无法弄明白.我当地的时区目标是新西兰.

这是我尝试过的:

 var pattern = LocalDateTimePattern.CreateWithInvariantCulture("ddMMyyHHmmss");

 var parseResult = pattern.Parse(utcDateTime);
 if (!parseResult.Success)
 {
     throw new InvalidDataException("Invalid time specified " + date + time);
 }

 var timeZone = DateTimeZoneProviders.Bcl["New Zealand Standard Time"];

 var zone = new ZonedDateTime(
                  localDateTime, 
                  timeZone, 
                  timeZone.GetUtcOffset(SystemClock.Instance.Now));


 return new DateTime(zone.ToInstant().Ticks);
Run Code Online (Sandbox Code Playgroud)

c# nodatime

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

使用Unity 2和MVC 3将类注入Authentication属性

我已经阅读了一些指出如何做到这一点的文章,即:

堆栈溢出解决方案

Brad Wilsons出色的教程

这些看起来效果很好,但是当我遵循这里的一些指导原则时

保护ASP.NET MVC 3应用程序

我好像来了一个收割机.对我来说,问题是当我将AuthorizationAttribute添加为GlobalFilter而不是仅仅装饰控制器/操作时.虽然依赖解析器似乎被调用并设置我公开的[Dependancy]属性,当它实际到达我覆盖AuthorizeAttribute的OnAuthorization()方法的代码部分时,我的public [Dependency]属性为null.

当我从全局过滤器中删除它并装饰一个控制器它似乎工作.

如果需要更多信息,我可以发布代码.

编辑:为了进一步扩展这里我的一些代码:

的global.asax.cs

 public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {                        
        // If I have this here the my [Dependency] attribute does not keep it's value
        // If I remove it and decorate the controller the [Dependency] attribute keeps it value
        filters.Add(new BasicAuthenticationAttribute());
        filters.Add(new HandleErrorAttribute());
    }

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);

        // injection of services and data contexts
        var container = new UnityContainer();

        // injections for services
        RegisterUnityServices(container);

        // …
Run Code Online (Sandbox Code Playgroud)

c# unity-container asp.net-mvc-3

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

将实体框架从MVC移动到另一个项目会导致重新迁移

我目前有一个asp.net MVC 4应用程序,它包含Entity框架6 Code First模型,DbContext和Migrations.为了将它与我的Web应用程序分开,以便我可以在另一个项目中重用这些数据库类,我已将所有相关的Entity Framework类移动到它们自己的项目中.

但是现在当我运行解决方案时,它认为我的模型已经更改并尝试再次运行我的所有迁移.问题似乎在我的使用中SetInitializer,好像我注释掉了这一行,我可以正常运行Web应用程序.

public static class DatabaseConfig
{
    public static void Initialize()
    {
       System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion<G5DataContext, Configuration>());

        // make sure the database is created before SimpleMembership is initialised
        using (var db = new G5DataContext()) 
            db.Database.Initialize(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我尝试移动所有Entity Framework类之前,这不是问题.这是不可能的,还是我做了一些根本错误的事情?

c# asp.net-mvc entity-framework ef-code-first asp.net-mvc-4

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

如何从mantis中删除配置文件字段

当我创建或查看问题时,我想从Mantis问题跟踪系统中删除选择配置文件及其随附字段,因为这些与我想要创建的任何问题无关.

这些包括平台,操作系统和操作系统版本字段以及配置文件部分.

无论如何我能做到吗?

mantis issue-tracking

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

限制用户访问Assembla或其他SVN托管服务上的存储库

在阅读了一些相当积极的评论之后,我一直在研究Assembla SVN托管解决方案.但是,我的一个要求是限制用户访问我已设置的某些存储库.原因是我们有一个承包商,我想将他们的代码检查到特定的集合存储库,但是我不想授予他们访问我已设置的其他代码存储库的权限.

我在这方面可以看到的唯一限制是将用户设置为编辑,查看或所有模式,这似乎不适合我正在寻找的内容.试图阅读Assembla常见问题解答但无法找到任何相关信息.

我们在启动包上提供1个空间和3个用户.

那么使用Assembla服务是否可行,如果没有,是否有任何免费或只是便宜的选项可以做到这一点?

谢谢.

更新:我决定对Assembla进行更深入的研究,看起来它不像大卫的建议那样提供这种细粒度控制.我在http://forum.assembla.com/forums/2-Subversion-and-Git/topics/3567-Team-permissions-to-different-repositories-in-the-same-space的支持论坛上找到了这些信息..

我想现在的问题是,是否有人知道另一个svn托管解决方案,那将提供这种用户级控制?

svn hosting

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

在sql中将本地日期时间从xml转换为datetime

我通过xml接收一些数据,这些数据将被插入到关联的SQL表中.我用来插入数据的方法是在sql中查询XML并根据需要进行批量插入.

我遇到的问题是日期永远不会被识别为有效日期,所以总是会回到默认日期.

这里是提供日期的XML片段

<Upload xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <DeviceID>0008E02B66DD_</DeviceID>
  <DeviceType>03.20</DeviceType>
  <FarmID>2</FarmID>
  <UploadDate>0001-01-01T00:00:00</UploadDate>
  <Sessions>
    <SessionID>99</SessionID>
    <RecordedDate>2012-02-03T13:00:00+13:00</RecordedDate>
    <Readings />
  </Sessions>

...
Run Code Online (Sandbox Code Playgroud)

这是我处理它的SQL代码片段

Select
(CASE 
 WHEN ISDATE(s.value('(RecordedDate)[1]', 'varchar(50)')) = 1 THEN s.value('(RecordedDate)[1]', 'varchar(50)')
 ELSE @UploadDate
 END) DateOfMeasurement
INTO #Session
FROM
@XMLData.nodes('/Upload') AS Upload(u)
CROSS APPLY
u.nodes('./Sessions') Sessions(s)
Run Code Online (Sandbox Code Playgroud)
  • 注意:@ UploadDate实际上是SQL getDate()的值,即我的默认值

我插入此数据库的字段是一个日期时间字段

题:

我想将XML中收到的日期(即2012-02-03T13:00:00 + 13:00)插入到我的SQL数据库的datetime字段中.反正有没有在SQL中很好地转换这个?

xml sql sql-server

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

从jquery调用MVC操作并处理重定向或返回的部分视图

我想调用我的操作并让该操作返回直接呈现在视图上的结果局部视图,或者让操作重定向到服务器上的另一个页面.

然而,由于我通过jQuery这样做,它似乎将重定向的页面加载到我的目标div元素,而不是重新定向干净,有效地重新加载页面/网站.

jQuery调用:

$.ajax({
     type: "GET",
     url: "Myurl",
     dataType: "html",
     success: function (data) {
         // replace the context of the section with the returned partial view
         $('#upload_section').html(data);
     }
 });
Run Code Online (Sandbox Code Playgroud)

MVC动作示例

public ActionResult MyAction() 
{
   bool doRedirect = // some code to determine this condition
   if (doRedirect)
   {
      return RedirectToAction("MyAction", "Home");
   }
   else
   {
      // return the partial view to be shown
      return PartialView("_UploadSessionRow");
   }
}
Run Code Online (Sandbox Code Playgroud)

我做错了吗?这样做有更好的练习方法吗?在其他操作和jQuery请求中需要执行此操作,因此我正在寻找一种常见的方法来解决此问题.

更新:感谢安德鲁斯的回答我通过改变我的建议改变了我的ajax.最终的ajax是:

function loadOrRedirect(options) {

    var jData = null;

    try {    
        if (options.data) {
            jData …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery asp.net-mvc-3

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

没有音频的媒体上的AWS MediaConvert

我目前正在通过AWS中的Lambda函数创建一个MediaConvert作业,并使用它来转换我的媒体并创建缩略图。但是,当尝试转换没有音频的媒体时,它会失败。

为audio_selector [1]指定了无效的音轨。在输入容器中找不到音轨[1]。

如果没有音频,是否可以处理媒体?

media amazon-web-services aws-lambda

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

登录不能使用IE11的Web应用程序

我开发了一个使用表单身份验证和cookie的MVC4 Web应用程序.在所有浏览器中,自从我开始(几年)以来它一直运行良好.

我现在尝试从微软虚拟盒中使用IE11测试此站点,并且登录过程不起作用.当我点击登录时没有任何反应,我被重定向回登录页面,好像我没有经过身份验证.

起初我以为是因为cookie已经过期但是cookie被设置为我可以在临时文件中看到它.我的代码似乎没有做任何棘手的事情.

注意:当我将站点添加到兼容性视图时,登录过程有效

这是登录/ Cookie代码

public void SignIn(HttpResponseBase response, string userName, bool rememberMe)
{
    if (String.IsNullOrWhiteSpace(userName)) 
          throw new ArgumentException("Value cannot be null or empty.", "userName");

    var ticket = new FormsAuthenticationTicket(
                        1, 
                        userName, 
                        DateTime.Now, 
                        DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), 
                        rememberMe, 
                        string.Empty);

    var cookie = new HttpCookie(
                        FormsAuthentication.FormsCookieName, 
                        FormsAuthentication.Encrypt(ticket));
    cookie.HttpOnly = true;

    if (rememberMe)
    {
        cookie.Expires = ticket.Expiration;
    }

    response.Cookies.Add(cookie);
}
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个自定义AuthorizeAttribute,它应该委托链,因为我没有通过ajax登录.

public class OverseerAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext context)
    {
        if (FormsAuthentication.IsEnabled)
        {
            if (context.HttpContext.Request.IsAjaxRequest())
            {
                context.HttpContext.Response.AddHeader("REQUIRES_AUTH", "1");
                context.Result = …
Run Code Online (Sandbox Code Playgroud)

forms-authentication asp.net-mvc-4 internet-explorer-11

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