If you have reasons to use Mono or you are already using it, then I think that fixing Mono is a more reasonable option than moving to MS .NET.

Kornel

On 1/2/2013 3:09 PM, Ovidiu Deac wrote:
Thanks for the answer.

So the short version is that if I want to have multiple instances of the
application and do load balancing then I must drop mono and use .NET
instead ?

Is there any other possibility to achieve load  balancing/high
availability with mono?

On Wed, Jan 2, 2013 at 3:20 PM, Kornél Pál <[email protected]
<mailto:[email protected]>> wrote:

    Based on the source code of Mono's
    System.Web.Handlers.AssemblyResourceLoader I think that the
    implementation is flawed.

    I am going to describe the problem, but I think that you should file
    a bug report.

    Although it is using a hashing algorithm that always results in the
    same hash for the same script resource, hashes are not generated and
    stored in the dictionaries unless a link is generated, thus a
    resource is not available until a link to it was generated by the
    same AppDomain before.

    As such even AppDomain restarts can trigger the problem, although a
    simple refresh on the page fixes it by generating hashes for the web
    resources that subsequently can be retrieved from the server,
    provided that there is only one AppDomain (one process, one server)
    serving the requests.

    As I see at least the assembly name should be included in the query
    string, resource hashes can be regenerated based on
    WebResourceAttributes of the assembly.

    To prevent loading arbitrary assemblies, the assembly name should be
    encrypted using the machine key and also should be signed using HMAC
    to avoid padding oracle vulnerability similar to CVE-2010-3332 that
    the MS implementation had (encrypted view state, forms
    authentication cookie, and WebResource.axd were all affected).

    Kornel


    On 1/2/2013 12:34 PM, Ovidiu Deac wrote:

        I'm running nginx which does load balancing over several
        instances of
        fastcgi-mono-server4

        Apparently when a webresource link is handled by a different
        fastcgi-mono-server than the one which originally produced the
        link it
        returns a 404 error.

        I have set a persistent machinekey as recommended for webfarms
        but the
        problem still remains.

        Any idea what else could be wrong?

        If it makes any difference: the application is written with
        F#/WebSharper and we disabled the session state and the forms
        authentication.

        Thanks


        _______________________________________________
        Mono-aspnet-list mailing list
        [email protected]
        <mailto:[email protected]>
        http://lists.ximian.com/mailman/listinfo/mono-aspnet-list


_______________________________________________
Mono-aspnet-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-aspnet-list

Reply via email to