标签: .net-4.0

在IIS托管的WCF服务中保存文件

问题

使用绝对文件名(例如C:/tinkiwinki/dipsy.lala)使用System.Drawing.Image.Save(Stream, ImageCodecInfo, EncoderParameters)IIS中托管的WCF服务中的方法在服务器中保存图像时,它不会保存图像,甚至不会抛出异常.

背景

我们有一个帮助器类,它有一个SaveJpeg方法:

public class Tools
{
    public static void SaveJpeg(string path, Image img, int quality)
    {
        if (quality < 0 || quality > 100)
            throw new ArgumentOutOfRangeException("Quality must be between 0 and 100.");

        EncoderParameter qualityParam =
            new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);

        ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");

        EncoderParameters encoderParams = new EncoderParameters(1);
        encoderParams.Param[0] = qualityParam;

        img.Save(path, jpegCodec, encoderParams);
    }
}
Run Code Online (Sandbox Code Playgroud)

我们在这样的WCF OperationContract方法中使用它:

string destDirectory = ServerDataFilePath.ImagesPath + @"\" + uploadID.ToString();
if …
Run Code Online (Sandbox Code Playgroud)

c# iis wcf save .net-4.0

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

将类从asp.net 4转换为asp.net 3.5(Massive Lib)

我一直在使用大规模的Massive Lib(github)

对于asp.net 4项目.

我现在继承了以前开发人员的一个项目,该项目位于asp.net 3.5中.

大多数'大规模'我仍然可以使用,但有2个类由于asp.net 4功能无法使用.我的计划是创建2个新类,使用相同的名称来修补相同的功能.

这两个类是'DynamicObject'和'ExpandoObject'

我需要一些如何创建两个类来修补asp.net 4的功能.

唯一的问题是我不知道如何去做(我已经点击谷歌了,并且只有一个想法,需要使用字典)

任何一个想法或能指出我正确的方向?

(这两个类是asp.net内置的)

谢谢

编辑:

我知道4.0不能在3.5上运行,而4.0只是'更好'但是升级不在我的手中,我知道大量使用4.0,但我想模仿的类不是大规模的一部分,而是4.0框架.

我希望有一种方法可以重新创建这两个类,并以某种方式模仿那里的功能,但我猜不是

c# asp.net dynamic-data .net-4.0 .net-3.5

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

如何忽略十进制

我试图这样做 - 将任何浮点值设为int值.我试图实现的是2.00-2.99变为2.

注意:我没有尝试做近似(低于2.49变为2,而那些2.50+变为3).

到目前为止我已经这样做了

public int RemoveDecimal(float value)
{
    string TempText = (string)value;
    TempText.Remove(IndexOf('.'));
    return int.parse(TempText);
}
Run Code Online (Sandbox Code Playgroud)

但是当浮点值以.00结尾时,这将出错

我怎样才能做到这一点?

谢谢你的帮助

c# .net-4.0

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

如何在.net web apps中使用参数进行长查询

假设您有一个冗长,复杂的查询来获取需要一些参数的结果.任何人都会这样做,但为了一个例子:

SELECT
    q.PROD_ID, q.NAME, q.STANDARD_PROD, q.DESCRIPTION, q.PART_NUMBER,
    q.COMMENTS, q.DESCRIPTION_URL,
    PROD_CATEGORY.DESCRIPTION AS CATEGORY_DESCRIPTION,
    PROD_TYPES.DESCRIPTION AS PROD_TYPE
FROM
    (SELECT
        PROD.PROD_ID,
        PROD.PROD_TYPE_ID,
        PROD.NAME,
        PROD.STANDARD_PROD,
        PROD.PROD_CATEGORY_ID,
        PROD.DESCRIPTION,
        PROD.PART_NUMBER,
        PROD.COMMENTS,
        PROD.DESCRIPTION_URL
     FROM
        (SELECT
            PROD_ID,
            PROD_TYPE_ID
         FROM
            XREF_PRODSYS
         WHERE
            (PROD_TYPE_ID = (SELECT
                                PROD_TYPE_ID
                             FROM
                                PROD_TYPES
                             WHERE
                                (NAME LIKE @prod_type_name)))) AS p
     LEFT OUTER JOIN PROD ON p.PROD_ID = PROD.PROD_ID
     WHERE
        (PROD.NAME LIKE @prod_name)
        AND (PROD.HIDDEN = 0)) AS q
LEFT OUTER JOIN PROD_CATEGORY ON q.PROD_CATEGORY_ID = PROD_CATEGORY.PROD_CATEGORY_ID
LEFT OUTER JOIN PROD_TYPES ON q.PROD_TYPE_ID = PROD_TYPES.PROD_TYPE_ID
Run Code Online (Sandbox Code Playgroud)

此特定查询需要两个参数,可能通过GET/POST传递给.NET …

c# web-applications .net-4.0 sql-server-2008-r2

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

获取输入列表

这是html:

<input type="text" value="Google" name="Projects[0]" />
 <input type="text" value="Microsoft" name="Projects[1]" />
 <input type="text" value="Microsoft" name="Projects[2]" />
Run Code Online (Sandbox Code Playgroud)

这也有一个ASPX提交按钮.

<asp:Button ID="submitBtn" Text="Save" runat="server" OnClick="SubmitButton_Click" />
Run Code Online (Sandbox Code Playgroud)

- - C# - - - - - -

 protected void SubmitButton_Click(object sender, EventArgs e)
    {            
        List<string> projectsInCSharp = new List<string>();
        projectsInCSharp.Add(Request["Projects[0]"]); //Google
        projectsInCSharp.Add(Request["Projects[1]"]); //Microsoft

    }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来执行此操作并自动将其绑定到列表中.例如,在ASP.NET MVC中,您可以执行此操作.但是我正在使用WebForms而我无法切换到MVC.

我使用的是.NET 4.0,C#,ASPX.

.net c# asp.net webforms .net-4.0

0
推荐指数
2
解决办法
234
查看次数

长跑WF 4模式

我想要实现以下目标:

  1. 启动可能会长时间运行的工作流程,其中包括自定义活动;
  2. 这些自定义活动将遵循创建书签和等待其简历的模式;
  3. 返回已启动的工作流程ID并将其存储在某处;
  4. 在以后的某个时间点,从其存储的ID加载工作流程;
  5. 检查工作流程是否已完成,如果没有,请检查是否有任何被阻止的书签;
  6. 恢复这些书签,从而导致相关活动完成,最终导致完整的工作流程完成.

一个简单的用例是:用于审阅文档并批准或拒绝文档的工作流程.将为此创建工作流程,将通知个人,并且只要他们想要,他们就可以通过批准或拒绝审核来提供他们的反馈.

我以Andrew Zhu的代码为例,可以在http://xhinker.com/post/WF4.aspx上找到.

我遇到的问题是:

  1. 当使用我所描述的自定义活动时,在启动工作流时,WaitForRunnableInstance无限期等待,因此我从未收到通知我的工作流程已启动并持久保存到数据库;
  2. 确实存储了工作流,并将列BlockingBookmarks设置为我的自定义活动的id,ExecutionStatus设置为Idle,IsInitialized设置为1,IsSuspended设置为0,IsCompleted设置为0并IsReadyToRun设置为0.

我已经开始讨论微软论坛,可以在http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/6262874d-3493-4be1-bd05-b990307e1875/上看到并得到一些反馈,但有些事情仍然不对.

有什么想法吗?使用自定义活动的长时间运行工作流的任何有用模式?

谢谢!

.net .net-4.0 long-running-processes workflow-foundation-4

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

如果发生异常,如何关闭WPF应用程序?

可能重复:
在消息框打开时关闭wpf

我目前有这样的代码,但问题是,即使我在MessageBox提供者中显示错误NLog,我想关闭应用程序,以便用户可以解决问题,但是应用程序在消息中单击"确定"后继续框.

private void Load(string fileName)
    {
        try
        {
            var environments = GetEnvironments(fileName); 
        }
        catch (FileNotFoundException ex)
        {
            logger.Error(ex.StackTrace);
        }
        catch (Exception ex)
        {
            logger.Error(ex.StackTrace);
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# wpf .net-4.0

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

从Windows Phone获取"真实"时间

我在我的应用程序中有一个函数,我将Unix Epoch的毫秒数与当前时间进行比较:

 DateTime.Now
Run Code Online (Sandbox Code Playgroud)

这导致时间不同,即:剩余2分钟或剩余4分钟.

我发现的问题是,有些用户没有在手机上正确设置时钟,或者故意将它略微向前推.

这导致上面的计算不正确.

有没有办法围绕这个,即; 从别人那里读"真实"的时间.时间计算是在电话而不是服务器端完成的,以方便使用.

c# .net-4.0 windows-phone

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

使用Expression.Block编译的委托继续抛出NullReferenceException

我正在尝试构建一个为给定对象分配多个属性的Expression,但是在调用已编译的委托之后,它会继续NullReferenceException在lambda体内抛出一个:

var a = Expression.Parameter(typeof(A), "a");
var b = Expression.Parameter(typeof(B), "b");
var c = Expression.Parameter(typeof(C), "c");

LabelTarget returnTarget = Expression.Label(typeof(A));
GotoExpression returnExpression =
    Expression.Return(returnTarget, a, typeof(A));
LabelExpression returnLabel = Expression.Label(
    returnTarget, Expression.Constant(null, typeof(A)));

var expression = Expression.Lambda<Func<A, B, C, A>>(
    Expression.Block(
        typeof(A),
        new[] { a, b, c },
        Expression.Assign(
            Expression.Property(a, typeof(A).GetProperty("B")),
            b),
        Expression.Assign(
            Expression.Property(a, typeof(A).GetProperty("C")),
            c),
        returnExpression,
        returnLabel
    ), 
    a, b, c);

Func<A, B, C, A> func = expression.Compile();

// Calling func throws a NullReferenceException
A result = …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda expression .net-4.0

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

将变量指向c#中的其他变量

为了快捷方式,是否可以将一个变量指向另一个变量?例如,假设我在一个被调用的类中有一个变量SharedResources.proxTelescope,如何在另一个被调用的类中获取一个变量,prox指向第一个变量,在一种快捷类型的东西中.我可以做var prox = SharedResources.proxTelescope;,但如果proxTelescope发生变化,它将不会反映在prox上,是吗?我应该怎么做呢.

c# .net-4.0

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