Laden...

Forenbeiträge von Rookian Ingesamt 25 Beiträge

02.01.2013 - 18:12 Uhr

Man kann die komplette Registrierungsphase in einem extra Projekt machen. Dieses könnte bspw. "CompositionRoot" oder "DependencyResolver" heißen. In diesem Projekt sind alle Referenzen enthalten und das UI Projekt bleibt schlank.

Das "CompostionRoot" Projekt bekommt zusätzlich ein HttpModul, von dem aus die komplette Registration einmalig angetriggert wird. Damit würde man erreichen, dass die UI auch den CompositionRoot nicht referenzieren muss. Meines Wissens nach kann man hierfür nicht die Global.asax nutzen und muss deswegen auf ein HttpModul zurückgreifen.

Zusammengefasst: Es ist sehr wohl möglich die UI "schlank" zu halten, allerdings muss man schauen, ob sich der Aufwand lohnt.

30.07.2009 - 11:34 Uhr

also ich hab mal direkt im IIS Forum nachgefragt. Man muss einfach ASP.NET 4.0 im IIS neuregistrieren lassen ([4.0er Version] aspnet_regiis.exe -i).

29.07.2009 - 20:03 Uhr

jo klar, aber da gings immer um etwas anderes 😕

29.07.2009 - 19:43 Uhr

HI! Ich versuche meine Webanwendung im lokalen IIS zu hosten. Doch leider funktioniert dies nicht, denn wenn ich die Seite aufrufe kommt folgender Fehler:

HTTP Error 500.21 - Internal Server Error
Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list
Module IIS Web Core
Notification ExecuteRequestHandler
Handler PageHandlerFactory-Integrated
Error Code 0x8007000d
Requested URL http://localhost:80/default.aspx
Physical Path C:\inetpub\wwwroot\default.aspx
Logon Method Anonymous
Logon User Anonymous

Hat jemand schonmal eine solche Webanwendung mit den aufgeführten Versionen im IIS7 gehostet?

Ich habe den DefaultAppPool auf .NET 4.0 umgestellt und in der webconfig is ebenso auf .NET 4.0 umgestellt.

Die ManagedEngine hab ich einfach mal hinzufügen lassen vom IIS7, aber es geht immer noch nicht.

Und den ManagedPipelineHandler find ich gar nicht in der Liste und weiß auch nicht wie ich den registrieren muss 😮

Kann mir jemand helfen?

06.06.2009 - 00:01 Uhr

ja gibt es. "Microsoft official Cource 2124C Programming with C#"
Kostenpunkt so weit ich weiß für 1 Woche: ca. 1000€
Ich hab das damals einfach so von meiner Firma bezahlt bekommen.

05.06.2009 - 13:20 Uhr

also ich hab jetzt "int?" verwendet.


        public ActionResult Edit(int? id)
        {
            var editProduct = (from p in _db.Product
                               where p.ProductID == id
                               select p).First();
               prepareCreateView();
               return View(editProduct);

        }

Und beim Converten von null in int gibt es logischerweise eine Exception, so dass die implementierte Methode Match false zurück liefert. Es wird aber trotzdem mein typisiertes View aufgerufen. Der Typ des Views ein Entity Objekt (Product). Ich übergebe dem View, ein bestimmtes Produkt was von der (int) ID abhängig ist. Nun ist dieser aber null und Linq to Entities wirft eine Fehlermeldung. Was heißt ich müsste mein Error Handling in dem ProductController vornehmen und nicht in meiner RouteConstraint Klasse.

Iwo macht dann eine RouteConstraint Klasse gar kein Sinn. 8o ?(

edit: In dem Bspw. verwendet man das .NET Framework 3.5SP1 und ich hab .NET Framework 4.0 Beta

04.06.2009 - 17:47 Uhr

jo klar ich hab dann einfach statt ner Zahl mal nichts eingegeben und mal Buchstaben. Und so wie ich die RouteConstraints verstanden habe, müssten die dann den Aufruf quasi blockieren in dem man gesagt bekommt, dass es die Seite nich gibt. Dies geschieht aber bei mir nich. Er macht normal weiter.

Zu dem nullable int ... in dem Tutorial verwenden die auch keine nullable ints. Mal abgeshen davon ... der dürfte doch NIE bis zu dem ActionResult Aufruf kommen, weil dich eigentlich schon vorher eine not found Seite (oder so ähnlich) kommen müssen. Sobald die Match Methode false zurück liefert, kommt es zum Abruch. So hab ich das zu mind. verstanden :S

04.06.2009 - 15:54 Uhr

Hi!

Ich habe dieses Tutorial ausprobieren wollen, jedoch funktioniert dieses bei mir nicht.

Contraint:


    public class ProductIDRouteContraint : IRouteConstraint
    {
        public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
        {
            if (routeDirection == RouteDirection.IncomingRequest &&
                parameterName.ToLower(CultureInfo.InvariantCulture) == "id")
            {
                try
                {
                    int id = Convert.ToInt32(values["id"]);
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
            }
            return false;
        }
    }

Routing


            routes.MapRoute(
                "ProductRoute",
                "Product/Edit/{id}",
                new { controller = "Product", action = "Edit", id = "" },
                new { id = new ProductIDRouteContraint() }
            );
//usw. ....

Ich gebe bspw. keine Zahl ein sondern Text. Beim Debuggen springr er ganz klar in den Catch Block und die Methode gibt false zurück. Nun müsste ja eine Seite kommen wo steht, dass die URL nich gefunden wurde(ODER?!). Diese kommt aber leider nicht. Stattdessen kommt eine Exception


The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Edit(Int32)' in 'MvcApplication1.Controllers.ProductController'. To make a parameter optional its type should be either a reference type or a Nullable type.
Parameter name: parameters 

In dem Bsp. haben die auch keine nullable IDs und es funktioniert.

Wenn ich keine ungültigen IDs vergebe, dann funktioniert alles natürlich.

Hat jemand eine Ahnung woran das liegen kann?

16.12.2008 - 17:44 Uhr

jo danke funzt 😉

16.12.2008 - 16:58 Uhr

Hi!

Ich habe ein Usercontrol und möchte dieses NICHT statisch auf der aspx Seite definieren, SONDERN im Codebehind und das ganze über eine Schleife. Dummerweise funktioniert das nicht. Wenn man allerdings bspw. eine TextBox nimmt geht dies wunderbar. Das UserControl an sich funktioniert so bald ich es in der apsx Seite einbinde.

Hier mein UserControl


<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CommentViewer.ascx.cs" Inherits="WebApp.CommentViewer" %>
<asp:Table runat="server" ID="tblComment" Width="516" CssClass="elf">
    <asp:TableRow runat="server" ID="HeadRow"  CssClass="white" Style="background-color: rgb(102, 102, 102);
            height: 16px;">
        <asp:TableCell runat="server" ID="HeadCell1" >
            <asp:Label runat="server" ID="Label1">#1</asp:Label>
            <asp:Image runat="server" ID="Image1" style="padding: 0px 2px 0px 2px" ImageUrl="~/online.jpg" />
            <asp:Label runat="server" ID="Label2">Benutzername</asp:Label>
        </asp:TableCell>
        <asp:TableCell runat="server" ID="HeadCell2" >
            <asp:Label runat="server" ID="Label3" Style="float: right">28.11.2008 14:08:39 </asp:Label>
        </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow runat="server" ID="Comment" >
        <asp:TableCell runat="server" ID="CommentCell"  ColumnSpan="2">
            <asp:Label runat="server" ID="lblComment">Kommentar</asp:Label>
            <asp:Panel  runat="server" ID="divLine" CssClass="line"></asp:Panel >
        </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow runat="server" ID="Edit" >
        <asp:TableCell runat="server" ID="EditCell" Style="text-align: right"  ColumnSpan="2">
            <asp:HyperLink runat="server" ID="hplLink" NavigateUrl="~/CommentEditor.aspx">Edit</asp:HyperLink>
        </asp:TableCell>
    </asp:TableRow>
</asp:Table>

Die Eigenschaften(Text Values usw.) hab ich nur so zum Testen drin.

Kann mir jemand einen Rat geben?

Danke im Voraus!

16.11.2008 - 16:07 Uhr

einfach die Druck bzw Print Taste drücken (über einfg bzw. insert) und in Paint Strg + V und du hast nen Screenshot.

16.11.2008 - 14:10 Uhr

mach mal nen Screen. ... Also ich kann dir von vorne herein sagen, dass das ReportViewerControl nich so toll is, da aus irgendwelchen Gründen innerhalb der ControlBar (die Bar ganz oben) einfach Scrollbalken enstehen, aber nicht immer. Is teilweise seehr komisch.

15.11.2008 - 21:23 Uhr

ReportViewer1.SizeToReportContent = true;

15.11.2008 - 21:19 Uhr

Hi!

Ich möchte mir selbst eine Art Kommentarsystem basteln. D.h. User können Kommentar schreiben/zitieren und bearbeiten. Nun frage ich mich wie ich das ganze angehen soll. Nutzt man dafür nun ein Custom Webcontrol oder ein User Web Control? Was sollte man beachten hinsichtlich der Weiterverwendung, so dass man bspw. noch eine Art Artikel über die Kommentarfunktion legt - wie man das halt kennt.

21.10.2008 - 21:54 Uhr

Ich will erstmal, eine Downloadfunktionalität haben. D.h. ich rufe http://localhost:49800/download/mein.pdf auf und es wird das PDF (oder .) heruntergeladen.
Das ganze ist für mich eine reine Übung. Also ich hab nichts spezielles vor.

Der Debugger sagt nix. Es is halt diese URL null.

So scheint das ganze zu funktionieren.


 public class ImageGuardHandler : IHttpHandler
    {
        public void ProcessRequest(System.Web.HttpContext context)
        {
            HttpResponse response = context.Response;
            HttpRequest request = context.Request;
            string imagePath = null;
             //Check whether the page requesting the image is from your site.
            //if (request.UrlReferrer != null)
            //{
            ////    // Perform a case-insensitive comparison of the referrer.
            //    if (String.Compare(request.Url.Host, request.UrlReferrer.Host,
            //    true, CultureInfo.InvariantCulture) == 0)
            //    {
                     //The requesting host is correct.
                     //Allow the image to be served (if it exists).
                    imagePath = request.PhysicalPath;
                    if (!File.Exists(imagePath))
                    {
                        response.Status = "Image not found";
                        response.StatusCode = 404;
                        return;
                    }
            //    }
            //}
            if (imagePath == null)
            {
                // No valid image was allowed.
                // Return the warning image instead of the requested image.
                // Rather than hard-code this image, you could
                // retrieve it from the web.config file
                // (using the <appSettings> section or a custom
                // section).
                imagePath = context.Server.MapPath("~/Images/404.jpg");
            }
            // Set the content type to the appropriate image type.

            MimeTypeProvider p = new MimeTypeProvider();

            
            response.AppendHeader("Content-disposition","attachment; filename=" + Path.GetFileName(imagePath));
            response.ContentType = p.GetMimeType(Path.GetExtension(imagePath).ToLower());
            // Serve the image.
            response.WriteFile(imagePath);
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }


      <add verb="*" path="/Images/*" type="WebApplication1.ImageGuardHandler"/>


                    if (!File.Exists(imagePath))
                    {
                        //response.Status = "Image not found";
                        // Hier müsste zu einer Fehlerseite weitergeleitet werden ....
                        response.StatusCode = 404;
                        return;
                    }

Wie leite ich auf eine Seite (Fehler.aspx) um?

21.10.2008 - 21:04 Uhr

Folgenden Code habe ich bis jetzt:


public class ImageGuardHandler : IHttpHandler
    {
        public void ProcessRequest(System.Web.HttpContext context)
        {
            HttpResponse response = context.Response;
            HttpRequest request = context.Request;
            string imagePath = null;
            // Check whether the page requesting the image is from your site.
            if (request.UrlReferrer != null)
            {
                // Perform a case-insensitive comparison of the referrer.
                if (String.Compare(request.Url.Host, request.UrlReferrer.Host,
                true, CultureInfo.InvariantCulture) == 0)
                {
                    // The requesting host is correct.
                    // Allow the image to be served (if it exists).
                    imagePath = request.PhysicalPath;
                    if (!File.Exists(imagePath))
                    {
                        response.Status = "Image not found";
                        response.StatusCode = 404;
                        return;
                    }
                }
            }
            if (imagePath == null)
            {
                // No valid image was allowed.
                // Return the warning image instead of the requested image.
                // Rather than hard-code this image, you could
                // retrieve it from the web.config file
                // (using the <appSettings> section or a custom
                // section).
                imagePath = context.Server.MapPath("~/Images/404.jpg");
            }
            // Set the content type to the appropriate image type.

            MimeTypeProvider p = new MimeTypeProvider();

            
            response.AppendHeader("Content-disposition","attachment; filename=" + Path.GetFileName(imagePath));
            response.ContentType = p.GetMimeType(Path.GetExtension(imagePath).ToLower());
            // Serve the image.
            response.WriteFile(imagePath);
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }

WebConfig:


<add verb="*" path="/download/*" type="WebApplication1.ImageGuardHandler"/>

Wenn ich http://localhost:49800/download/mein.pdf eingebe, kommt immer nur 404.jpg. Dies liegt daran das der request.UrlReferrer immer null ist. Nur woran liegt das? (Die Datei mein.pdf ist vorhanden)

Kann mir jemand weiterhelfen?

PS Bitte nicht wundern warum da ständig was von Image steht. Ich hab das ganze aus nem Beispielt, welches ich aber verändert habe.

20.10.2008 - 19:13 Uhr

Folgenden Code habe ich bis jetzt:


public class ImageGuardHandler : IHttpHandler
    {
        public void ProcessRequest(System.Web.HttpContext context)
        {
            HttpResponse response = context.Response;
            HttpRequest request = context.Request;
            string imagePath = null;
            // Check whether the page requesting the image is from your site.
            if (request.UrlReferrer != null)
            {
                // Perform a case-insensitive comparison of the referrer.
                if (String.Compare(request.Url.Host, request.UrlReferrer.Host,
                true, CultureInfo.InvariantCulture) == 0)
                {
                    // The requesting host is correct.
                    // Allow the image to be served (if it exists).
                    imagePath = request.PhysicalPath;
                    if (!File.Exists(imagePath))
                    {
                        response.Status = "Image not found";
                        response.StatusCode = 404;
                        return;
                    }
                }
            }
            if (imagePath == null)
            {
                // No valid image was allowed.
                // Return the warning image instead of the requested image.
                // Rather than hard-code this image, you could
                // retrieve it from the web.config file
                // (using the <appSettings> section or a custom
                // section).
                imagePath = context.Server.MapPath("~/Images/404.jpg");
            }
            // Set the content type to the appropriate image type.

            MimeTypeProvider p = new MimeTypeProvider();

            
            response.AppendHeader("Content-disposition","attachment; filename=" + Path.GetFileName(imagePath));
            response.ContentType = p.GetMimeType(Path.GetExtension(imagePath).ToLower());
            // Serve the image.
            response.WriteFile(imagePath);
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }

WebConfig:


<add verb="*" path="/download/*" type="WebApplication1.ImageGuardHandler"/>

Wenn ich http://localhost:49800/download/mein.pdf eingebe, kommt immer nur 404.jpg. Dies liegt daran das der request.UrlReferrer immer null ist. Nur woran liegt das?

Kann mir jemand weiterhelfen?

PS Bitte nicht wundern warum da ständig was von Image steht. Ich hab das ganze aus nem Beispielt, welches ich aber verändert habe.

20.10.2008 - 18:41 Uhr

ich hab 0,00 Plan mir fällt in dem ganzen der Zusammenhang oO Vorallem als Webneuling blick ich da nicht durch. Was soll der type, usw ...?

Muss ich jetzt ne extra Klasse definieren?
Und wie sieht das ganze C# Code mäßig aus oO

20.10.2008 - 18:01 Uhr

k. thx!

Ähm wie funktioniert da jetzt nen Download?! Ich hab das mit den HttpHandlern alles andere als verstanden oO

Wie mappe ich denn diesen virtuellen Pfad auf den Dateipfad vom Server?

Also bspw. "www.test.de/test.txt" auf "C:\Test.txt" ?

Und wie geht das alles überhaupt 😒?

19.10.2008 - 12:45 Uhr

Ähm also ich hab aktuell den Upload Ordner @"C:\inetpub&quot; + FileUpload1.FileName so gewählt. Dazu hab ich dem NetworkService Account das Recht gegeben dort reinzuschreiben. Ist das ganze jetzt sicherheitsmäßig die richtige Lösung?

19.10.2008 - 10:54 Uhr

und wo sollte man den Upload Ordner am sichersten hinlegen? Bzw. wo sollte der Ordner unter keinen Umständen liegen?

18.10.2008 - 20:17 Uhr

Hi!

ich möchte ein Fileupload realisieren. Jedoch funktioniert dies nur lokal.

Der Fileupload wäre aktuell für jederman.

Welcher Account braucht das Recht auf den Ordner?

Bzw. wie richtet man eine solche FileUpload Funktion "ordentlich" ein (extra Benutzer erstellen/wo in ASP.NET zu weisen oO)?

Gruß

Alex

18.10.2008 - 17:03 Uhr

einfach den Graphen in Flächen einteilen und ausrechnen 😮

29.01.2008 - 17:59 Uhr

Hab nach langem suchen eine Lösung gefunden, die auch besser zu handhaben ist.

Man erstellt sich einfach einen Ordner namens Ressources in seinem Projekt und fügt dort .resX Dateien ein.

Dann kann man die Resourcen folgendermaßen Auslesen:


        public static string GetValue(string key, string langID)
        {                       
            return Ressources.TextStrings.ResourceManager.GetString(key, CultureInfo.CreateSpecificCulture(langID));
        }

28.01.2008 - 13:43 Uhr

Hi! Ich möchte eine mit Resourcen befüllte Assembly auslesen.

Dabei kommt bei mir aber folgende Fehlermeldung:

"Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "AppStrings.resources" was correctly embedded or linked into assembly "resources" at compile time, or that all the satellite assemblies required are loadable and fully signed."

Code:


using System;
using System.Collections.Generic;
using System.Text;
using System.Resources;
using System.Reflection;
using System.Globalization;

namespace AppStrings
{
    class Program
    {
        static void Main(string[] args)
        {
            ResourceManager locRm = new ResourceManager("AppStrings", Assembly.LoadFile("C:\\Documents and Settings\\MEINNAME\\Desktop\\Resource Test\\resources.dll"));

            Console.Out.WriteLine("strWelcome = {0}", locRm.GetString("strWelcome", new CultureInfo("de-DE")));
            Console.ReadLine();
        }
    }
}

ResourcenDateien:

AppStrings.de-DE.resources
AppStrings.en-US.resources

Dll: C:\Documents and Settings\MEINNAME\Desktop\Resource Test\resources.dll (dort sind die Resourcen drin)

Die Fehlermeldung kommt in der vorletzten Zeile

Console.Out.WriteLine

...

Hier das von mir verwendete Tutorial dazu: http://www.geocities.com/egon_rath/resources.html

Kann mir jemand weiterhelfen?

Ich habe mal überprüft ob meine Assembly überhaupt richtig erstellt wurde. Die Assembly funktioniert. Ich habe dazu ein Programm laufen lasssen, welches die Assembly ausliest und es wurden alle Werte wieder gegeben.

Hat denn keiner eine Idee wie ich mit dem Resource Manager und der GetString Methode aus einer Assembly Resourcen auslesen kann?

TIA!