The HTTP Verb POST Used To Access Path '/test.html' Is Not Allowed
Feb 5, 2010Below is my code:
[code]....
The HTTP verb POST used to access path '/test.html' is not allowed
Below is my code:
[code]....
The HTTP verb POST used to access path '/test.html' is not allowed
I am not using URL Rewriting, my app works fine until I try to hit a .PDF file or even a .TXT file via a link that I have dynamically generated into the PostBackUrl of a LinkButton. The path is correct. I have thoroughly researched this issue on here and most of the issues are with people using a POST action or not or the URL Rewriting, which I am not. In IIS Error looks like:
Server Error in Application "DEFAULT WEB SITE/EVENTS"Internet Information Services 7.5
Error Summary
HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used. Detailed Error Information
Module StaticFileModule
Notification ExecuteRequestHandler
Handler StaticFile
Error Code 0x80070001
Requested [URL]
Physical Path C:projectsEventsEventDocs48ea946f-e948-e011-ad73-00155d0e670b2011.pdf
Code to dynamically generate the url to click to is here:
public void DocumentsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
LinkButton LinkToDoc = (LinkButton)e.Item.FindControl("LinkToDoc");
Label FileNameLabel = (Label)e.Item.FindControl("FileNameLabel");
LinkToDoc.PostBackUrl = "~/EventDocs/" + SessionValue.EventId.ToString() + "/" + FileNameLabel.Text;
LinkToDoc.Text = FileNameLabel.Text;
}
In my Asp.net MVC app, I have two methods on a controller, one for when the user first arrives on the view and then one when they submit the form on said view.
public ActionResult Foo() {}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Foo(string id, Account accountToFoo) {}
In the second action, there's a custom model binder that's assembling the account object that I'm acting on, though that's really not important. This all works fine in testing locally on a server.We try to be pretty good about writing unit tests to test all our different views are properly getting routed to, including those that are HTTP POST. To do so, we've been using mvccontrib's test helper.
Testing gets have been super simple
"~/account/foo/myusername".
Route().
ShouldMapTo<AccountController>(c => c.Foo("myusername"));
My question is in testing POST routes, how do I write the lambda that I would use to verify the post is receiving accurate values, similar to the GET test above?
For a POST, it looks something like:
"~/account/foo".
WithMethod(HttpVerbs.Post).
ShouldMapTo<AccountController>(a => something_something);
It's the something_something portion of my lambda that I'm having trouble with. Using arbitrary values doesn't work ("a => a.Foo(0, new Account()"). How would I specify the expected values as part of the test?EDIT I was hoping there was something akin to the way Moq has lambdas for statements such as foo.Setup(s => s.Foo(It.IsAny(), It.Is(i => i > 32)) and so on. Even I have to explicitly supply the values, that's workable--I just can't seem to grok the desired structure to pass those explicit values.
HttpHandler and POST verb?
View 3 RepliesI have been spinning my wheels now for awhile trying to figure out how I can possibly unit test the following code. At first I was going to use Moq to mock everything, but it doesn't include the ability to mock sealed classes. I know I need to abstract out the calls to the implementation (Configuration) using an interface? but I can't seem to make it all work right. The code can be altered but I would prefer to keep the methods static, unless you can present a compelling reason not to. You can add interfaces or create whatever seams are needed. Also, GetConnStringByName() can be refactored to return the relevant string instead of a ConnectionStringSettings. Thoughts?
namespace Stackoverflow.Rocks
{
/// <summary>
/// Utility class for progmattically selecting values from the Web.config file.
/// </summary>
public class WebConfigStrings
{
//private static Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
/// <summary>
/// Retrieves the desired connection string value based upon the target name.
/// </summary>
/// <param name="connectionStringName">The target connection string referenced in the Web.Config</param>
/// <returns>The value specified in the Web.Config by your connectionStringName</returns>
public static ConnectionStringSettings GetConnStringByName(string connectionStringName)
{
Configuration rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
ConnectionStringSettings connString;
connString = rootWebConfig.ConnectionStrings.ConnectionStrings[connectionStringName];
return connString;
}
/// <summary>
/// Retrieves the desired application string value based upon the target name.
/// </summary>
/// <param name="applicationStringName">The target application string referenced in the Web.Config</param>
/// <returns>The value specified in the Web.Config by your applicationStringName</returns>
public static string GetAppStringByName(string applicationStringName)
{
string appString = "";
appString = ConfigurationManager.AppSettings[applicationStringName];
return appString;
}
}
}
OK, I've seen a lot of ambiguous errors, but this was is in the top 20 or so. I have a RenderPartial that looks like this:
[Code]....
When the view loads, I get this error:
The relative virtual path '~Areas/User/Views/Shared/ProjectStats.ascx' is not allowed here. That really helps. Why isn't it allowed there? What's wrong with it? Just above it I have other PartialRender calls that work without a problem. They're created exactly the same way. Here's another:
[Code]....
This works fine. I thought maybe it was due to accessing a view from another Area, but I added a partial view to that Area's folder and it still didn't work.
I have a task where i need to create a html page and HTTP post it to another page.
I know how to create a HTML page but i dont know how to HTTP post it to another.
I ahev seen many discussion related to this , but I could not find proper answer , I have live web site set up on IIS 6, and set virtual path MYSite and then phisical path to the web.config file on actual location.
I have copy this site to another server for the purpose of further development, so I need to run production site exactly same as live site , i can do edit in production and update pages to live.
Once I have copied the site give this error virtual path '/includes/menu.htm' maps to another application, which is not allowed
i have master page include menu as html files <!--#include file="../includes/topmenu.htm"-->
I have open site in IIS 7 and add virtual directory and gave a name (not same as live) and choose physical path to the root folder of the site. In IIS 7 I cannot give web.config file for the path, it should be folder. and I have change identity in apppool to Network Service and gave readaccess permission to folder.
[Code]....
hey all, i upgraded to the RTM of MVC 2, tried to upload a file and started getting "Post size exceeded allowed limits." error.i have:
[Code]....
in my web.config, however.what's going on?
[Code]....
Edit: i started with vs web server, but this is also happening in IIS 7 on Win7, and i added the following to my config file:
at System.Web.HttpRequest.GetMultipartContent()
RedirectResult is doing a HTTP Get. I want a redirect that does a Http POST
View 2 RepliesI am making an VB app where the user inputs links to articles. I then display the links within a ListView using LinkButtons. The LinkButton sends me to the page most of the time, but sometimes I get the following error:
Method Not Allowed The requested method POST is not allowed for the URL /index.htm.
Apache/1.3.37 Server at visualbasic.about.com Port 80
Hyperlinks seem to work fine, but I want to use the CommandName of the LinkButton. What's the problem?
Here is my code. I was using the HyperLink for testing.
<asp:ListView
ID="ListViewLinks"
runat="server"
DataSourceID="SqlDataSourceLinks">
<EmptyDataTemplate>
<span>No.....
I have made subdirectory [URL]. and user control is loaded at runtime. But there is this error The virtual path '/theme/miragetheme/user-controls/display-userblog.ascx' maps to another application, which is not allowed.
View 1 RepliesHow can I unit test an action which alters the Http Response object? I haven't been able to solve this. I can mock the object but can't see how I can check the value after the action runs. I set the Response.StatusCode when errors occur in ajax requests and need to check it has been set in the unit test. The only alternative I can see is to change all my actions to return json objects with a IsSuccessful flag or similar.
View 5 Replies[Code]....
[Code]....
I want to I get the file path test.config.How do find the the path to that file ?I tried something this but it appears an error:Object reference notes Set to an instance of an object.
I am working on form, which send input to webservice via post and display result. It must be simple, and it works fine on localhost. But when I try to use it agains live I have error 500.
Here is my code:
WebRequest request = WebRequest.Create("http://localhost:3192/WebServices/Export.asmx/" + uxAction.SelectedValue);
UTF8Encoding encoding = new UTF8Encoding();
byte[] data = encoding.GetBytes(uxRequest.Text);
request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8";
request.ContentLength = data.Length;
[Code]....
Ultimate goal is to provide protection against programming mistakes. I want to make sure that every page in a portion of my web application has a role specified like below. Ideally I would like to programatically check all requests coming in ( think IHttpModule ) and make sure that the page being requested has a role specified.
I can't seem to find how to get programatic access to the allowed roles.
[code]....
I had applied the following code as said by you :
byte[] b = YourByteArrayFromDb;
File.WriteAllBytes(MyFilePath, b);
But I am receiving an exception "Access to the path is denied". How do I solve this using ASP.Net with C#? And is there any format to set the path as string?
i get the above error when i try to run this sql statement
INSERT INTO PSPS_Posts (Post, Date_Posted, user_ID, Thread_ID) VALUES (@Post, @Date_Posted, @user_ID, (SELECT Thread_ID FROM PSPS_Thread WHERE Thread_ID = (SELECT MAX(Thread_ID) FROM PSPS_Thread
[code]...
I get the Subqueries are not allowed in this context. Only scalar expressions are allowed - i am going to run into this quite alot so I figuredI'd better see what the right way is!
I'm attempting to write a unit tests for an ASP.NET MVC 2 post action that takes a view model as its sole parameter. The view model is decorated with validation attributes such as [Required]. I'd like to test two scenarios. The first scenario is when a valid set of data is passed in (ie, all required properties have values) and a redirect to the list page is returned. The second scenario involves passing in invalid data (eg, when one or more of the Required properties are not set). In this case the same view is returned with error messages.The action signature is as follows:
[HttpPost]
public virtual ActionResult Create(NewsViewModel model)
The NewsViewModel class is as follows:
public class NewsViewModel
{
public Guid Id { get; set; }
[code]...
How to do it?I don't want to use this:
HttpContext.Current.Server.MapPath
Is there a similar function that I can call without requiring a httpcontext?For example if a start a thread doing some stuff i cant use the httpcontext, but i still need to get the path of the app. And no i can't pass the context as an argument or read it from a shared var.
a third party API doesn't consider image path and display nothing in image,,instead a http URL works.
I am creating a webservice and My requirement is to
Convert an image path to a http url..
for example instead of http://office.microsoft.com/global/images/mypic.jpg
i want
http://office.microsoft.com/global/images/default.aspx?assetid=ZA103873861033
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. Exception Details: System.Security.SecurityException: Requested registry access is not allowed.
What changes & where do i make in webconfig??
I'm using ASP.NET with MVC 2 and have trouble translating a local file url to a server address. It would seem like a fairly simple and common task, but google searches gives me no good answers. (Perhaps i suck at searching)
I have a controller that takes a file from a html form in a view and saves it to disk. I need to return the real url of this file back to the View. Whatever method i use, I always get a string with the local path of the file instead of the http path.
I suspect the url might get translated to http address once the project has been deployed, but I really need the server address when debugging without having to hardcode anything.
Consider the following example in some controller method:
string url = Url.RequestContext.HttpContext.Server.MapPath("~/Content/Files/" + Path.GetFileName(file.FileName));
// outputs: "C:\Users\xxx\Documents\Visual Studio 2010\Projects\[ProjectName]\Content\Files\file.png"
// whereas i'd like something like "http://localhost/Content/Files/file.png" instead
What wrong with this code?
[Code]....
I would like the numeric values of the enum of Response.StatisCode