Fizzler Stackoverflow Exception only IIS - iis

I'm using Fizzler (HtmlAgilityPack) for parsing html in ASP.Net WebService project. Project runs successfully in Visual Studio executables, and i can debug local project step by step.
After i deploy it to IIS , it gets stackoverflow exception on Flatten operation in HTMLNodeListExtensions.cs .
Problematic query is :
engine.Parse("#singleid .afewclass a")
This works on small sized html documents, but when this html document grows Flattening operation goes non-returning recursive operation, so stackoverlow occur. But only in IIS. (I'm using IIS 7.5 on windows 7 x64 - .net 4.0).
Is any IIS configuration that i'm missing for WebServices?
Or any Application Pool specification for solution ?
Thanks

Related

ASP NET Core 5.0 not supported in Azure

Hello i have a ASP Net Core 5.0 web api which i am trying to deploy to azure and i can't because it says it is not yet supported.
However following the MSDN and similar threads ( when the same issue was valid for .NET Core 3.1) i understood that you can publish it with the option to be self-contained.
It still does not work:
Application Logs
VStudio Publish
Any idea on how to publish my application to azure ?
Later Edit
I forgot to mention all calls to my web api return a 404 message.
So if my
[indexurl] returns the microsoft page
[Indexurl]/[some path] returns 404 (which i understood from github is a 500 actually)
What should i understand ? The web api works , or it doesnt and where could the problem be ?
ASP NET Core 5.0 not supported in Azure
After testing, azure webapp currently supports ASP.NET Core 5.0.
According to your description, I conducted a test, first tested under windows, it was normal. Then deployed and tested under Linux, it is normal.
I guess the reasons may be the following two:
There is a problem with your .Net 5.0 installation. It may be used when compiling, if necessary, and cause compilation exception and release failure. (The possibility is relatively low)
It is possible that the webapi created by default does not have a default index page, so you feel that it is not supported. In fact, you can use webapp for testing, or you can write an interface for testing yourself.
The VS2019 version I used for testing is Microsoft Visual Studio Enterprise 2019 Version 16.8.2. And I installed .net 5.0 Runtime on the machine.
For your question, describe in detail the steps of testing under Linux:
Step 1. Create Core5.0 Webapi Project.
Step 2. Test in local, and it works fine.
Step 3. Deploy to azure with Deployment mode is Framework-dependent.
And test it, it look likes something wrong because the project don't set default route, and I input the WeatherForecast to access default interface, it works.
Step 4. Deploy to azure with Deployment mode is Self-Contained like you pic.
And it also works fine.

Running multiple ASP.NET Core 2.2 webapps side-by-side in IIS

I'm trying to run 2 ASP.NET Core 2.2 webapps side-by-side on IIS 10. I created CoreTestApp1 & CoreTestApp2 (default VS template, no added code), i.e. both set up for In-Process hosting.
After I restart my server (IIS Mgr), the first webapp that I open in a browser (e.g. CoreTestApp1) runs fine; if I open the second one (CoreTestApp2) I get an error "HTTP Error 500.0 - ANCM In-Process Handler Load Failure".
If I restart my server again and open CoreTestApp2 first, then that runs fine, but now CoreTestApp1 causes the same error.
I tried running 2 ASP.NET Framework apps side by side, and that works fine.
Judging by the info I found (e.g. https://learn.microsoft.com/en-us/dotnet/core/deploying/index), it seems I should be able to run multiple core apps side-by-side?
Is there some extra config stuff that I'm missing?
Not sure if this is relevant, but I used Visual Studio's publish (to folder) with these settings...
Configuration = Debug
Target Framework = netcoreapp2.2
Deployment mode = framework-dependent
Target runtime = portable
Thanks to Lex's suggestion and some more googling, I found the answer to my question here:
The ASP.NET Core module V2 running in InProcess mode has to run in its own dedicated Application Pool. According to the documentation you cannot run multiple sites or virtual directories (Web Applications) using the the ASP.NET Core Module in a single Application Pool. Make sure each ASP.NET Core app on IIS gets its own Application Pool.
Creating extra Application Pools and assigning each ASP.NET Core app its own solved my problem; instructions on how to create App Pools here.

ASP.NET Core 2.0 app targeting .NET 4.6.1 fails to host on IIS

The problem
IIS ASP.NET Core module is unable to start an ASP.NET Core 2.0 app.
Browser: HTTP Error 502.5 - Process Failure
Windows Event Log: Application ‘MACHINE/WEBROOT/APPHOST/AppSite’ with physical root ‘C:\inetpub\apps\AppFolder\’ failed to start process with commandline ‘C:\inetpub\apps\AppFolder\App.exe’, ErrorCode = ‘0x80004005: 1’.
ASP.NET Core Module Log: Log file is created but is empty.
The setup
App: ASP.NET Core 2.0 targeting .NET Framework 4.6.1.
Server: Windows Server 2012 R2 Standard 6.2.9200 with IIS 8.5.9600.
The story
We've created a blank MVC Web application using the default project templates provided in Visual Studio 2017.
The app is deployed following the official specification: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/.
The confusion arises mainly from these two points:
Running the app through command-line on Kestrel works.
Running a different app but targeting .NET Core 2.0 and publishing as framework-dependant works flawlessly on IIS.
But between these two apps: the codebase is the same, the IIS website and application pool is the same and we even emptied out the app directory and used the same one.
Due to these points the only difference seems to be the net461 app's executable file.
We do not have full control over the Windows Server where we're trying to deploy but we do have administrator accounts. The current assumption is that the issue lies within permissions - maybe AD group policies, antivirus blocking the file but we're still awaiting response from the client's sysadmins. Meanwhile we haven't been able to replicate the error code ‘0x80004005: 1’ while trying to setup these restrictions on our development machines.
Here's an incomplete list of ideas and points about the issue we've tried while problem solving:
The initial app (targeting net461) works flawlessly on IIS when
deployed to other servers (Windows 10 Enterprise, Windows Server 2012
R2 Datacenter).
Reinstalling different versions of ASP.NET Core/.NET Core: Runtime & Hosting Bundle.
Setting NTFS permissions to the dotnet folder.
Changing IIS application pool identity to an administrator account.
Restarting the server.
Going over local group and security policies.
Going over the antivirus settings and logs.
Trying to deploy on a brand new server (same OS, same bloat).
All ideas/comments are greatly appreciated. The more obscure the better.
EDIT:
Since this got flagged as a possible duplicate of ASP.NET Core 0x80004005 I need to specify why that is not a duplicate.
That referenced project is an older version of ASP.NET Core (last use
of project.json was in 2016)
That referenced project targets .NET Core and not .NET 4.6.1. It is mentioned here as well that targeting .NET Core works on IIS in regard to this issue.
Selected answer points out that they fixed it by:
Turns out that this was result of needing to install some windows
updates and this problem:
api-ms-win-crt-runtime-l1-1-0.dll is missing when opening Microsoft
Office file
Rather than install the version discussed in the above issue I whet
into Programs and Features and ran a repair on Microsoft Visual C++
2015 Redistributable.
but the installation of Microsoft Visual C++ 2015 Redistributable is one of the steps in the official setup guide and it is mentioned here as well that the official guide has been followed during the setup process.
We have gone over that post and tried to repair and reinstall the Microsoft Visual C++ 2015 Redistributable runtime components and this did not fix the issue.
If anyone stumbles upon this post in the future:
The problem was indeed in the server's antivirus. It wasn't directly blocking the app's executable but its call to a class library in the system folder. This termination did not raise any of the usual alarms.
The application "C:\inetpub\apps\AppFolder\App.exe" attempted to load the library "bcrypt.dll" by calling the function "LoadLibraryExW". The operation was blocked and the application terminated.
After switching the MVC blank app to a completely blank Hello-World app it ran successfully.

Page keeps loading forever

Im using IIS 8.5 on Windows Server 2012 R2 so I add my Web Api but when I try to view the site it stays in a loading state like this:
Do not show any message or error just stays loading, I think that i miss some configuration or feature in my IIS but I don't know which one.
Edit: I use .Net framework, it is a REST .net web api like this reference, the IIS have installed .Net versions 3.5 and 4.5, it's IIS not the express and the default IIS website runs fine.
I would really appreciate any help.
Try to reduce the timeout settings to a minimum level, say 10 seconds.
See if it throws a Timeout error.
Without much information from your side its hard to judge.
Perhaps it could be an external service you are trying to access(Web service) or a DB connection?
Please check if the application pool you assigned to your solutions runs under the correct version of .net framework and in integrated mode. I had similar issues when trying to run an mvc app in classic mode. Check this out.
EDIT 1 - Reconfiguring IIS
If problems persists then try the ASP.NET IIS Registration tool. Execute the followig command as administrator:
aspnet_regiis -i
At the end of this post the different locations for aspnet_regiis are described. You should select a .NET Framework version corresponding to that of your project, run aspnet_regiis and assign the proper application pool to your app.

IIS does not start .net core 1.0 executable

so after .net core 1.0 got published I started a new console project and imported the code from a small prototype that is supposed to run without IIS. Besides having to use net46 in my project.json due the not-yet updated MongoDB.Driver, that worked fine. When I build the app in Visual Studio a small App.exe with a lot of dll is build and can be run fine locally without IIS.
I then noticed the option to build for IIS Express and thought that I can use the IIS on our server (IIS 6.2, Windows Server 2012 R2) too. It publishes fine with WebDeploy, but nothing happens after that. I was following this official guide. I installed the .NET core Windows Server Hosting bundle and everything appears to be in order, but when I browse to the url, I get a ERR_NAME_NOT_RESOLVED. Theapp.exedoes not appear in the Task Manager and I can't find any log file, although it is enabled in theweb.config. I can execute the app manually, but then it only listens on the defaultlocalhost:5000` address.
If I understood it correctly, the IIS is supposed to act as a reverse-proxy to the dotnet tool which starts a dll, but in my case it's already a compiled exe that works standalone. But I can't figure out how to build a dll from this app..
What am I doing wrong?
If you target full .NET Framework the application will be .exe and not .dll and it is fine. ERR_NAME_NOT_RESOLVED indicates that the url you provided in your browser could not be resolved and the request to the application was not made. AspNet Core Module starts the application on the first request and because the host could not be resolved the request was not made and the application was not started. Once you figure out why the name could not be resolved and you still have issues with making your application work with IIS take a look at my post which explains how things work and how to troubleshoot issues. This, however, only applies after the request can reach your application.

Resources